From 801ae64881927443ed9627228bee7d34ef4e786e Mon Sep 17 00:00:00 2001 From: Stephen Lombardo Date: Wed, 15 May 2019 12:49:41 -0400 Subject: [PATCH] Snapshot of upstream SQLite 3.28.0 --- LICENSE.md | 6 + Makefile.in | 17 +- Makefile.msc | 58 +- README.md | 67 +- VERSION | 2 +- autoconf/Makefile.msc | 11 +- configure | 70 +- ext/fts3/README.tokenizers | 6 +- ext/fts3/fts3.c | 2 +- ext/fts3/fts3_snippet.c | 28 +- ext/fts3/fts3_term.c | 2 +- ext/fts3/fts3_test.c | 8 +- ext/fts3/fts3_tokenize_vtab.c | 2 +- ext/fts3/fts3_tokenizer.c | 10 +- ext/fts3/fts3_write.c | 29 +- ext/fts3/unicode/mkunicode.tcl | 2 +- ext/fts5/fts5.h | 4 +- ext/fts5/fts5Int.h | 3 +- ext/fts5/fts5_aux.c | 4 +- ext/fts5/fts5_buffer.c | 4 +- ext/fts5/fts5_config.c | 4 +- ext/fts5/fts5_expr.c | 8 +- ext/fts5/fts5_hash.c | 63 +- ext/fts5/fts5_index.c | 38 +- ext/fts5/fts5_main.c | 24 +- ext/fts5/fts5_storage.c | 2 +- ext/fts5/fts5_tokenize.c | 2 +- ext/fts5/fts5_unicode2.c | 2 +- ext/fts5/test/fts5aa.test | 34 +- ext/fts5/test/fts5aux.test | 31 + ext/fts5/test/fts5corrupt3.test | 348 + ext/misc/amatch.c | 2 +- ext/misc/blobio.c | 152 + ext/misc/closure.c | 2 +- ext/misc/fileio.c | 14 +- ext/misc/fossildelta.c | 1086 + ext/misc/fuzzer.c | 4 +- ext/misc/percentile.c | 4 +- ext/misc/unionvtab.c | 4 +- ext/misc/vfsstat.c | 9 +- ext/rbu/rbupartial.test | 86 + ext/rbu/sqlite3rbu.c | 93 +- ext/rtree/geopoly.c | 20 +- ext/rtree/rtree.c | 36 +- ext/session/changeset.c | 9 +- ext/session/changesetfuzz.c | 23 +- ext/session/sessionB.test | 3 +- ext/session/sqlite3session.c | 10 +- ext/session/sqlite3session.h | 2 +- main.mk | 7 +- manifest | 342 +- manifest.uuid | 2 +- src/alter.c | 12 +- src/attach.c | 6 +- src/btree.c | 373 +- src/btree.h | 3 - src/btreeInt.h | 2 +- src/build.c | 32 +- src/expr.c | 17 +- src/func.c | 4 + src/hash.c | 4 +- src/hash.h | 2 +- src/insert.c | 15 +- src/loadext.c | 7 +- src/main.c | 4 +- src/malloc.c | 3 + src/pager.c | 21 +- src/parse.y | 111 +- src/pcache1.c | 4 +- src/printf.c | 9 +- src/resolve.c | 30 +- src/select.c | 2 +- src/shell.c.in | 275 +- src/sqlite.h.in | 47 +- src/sqlite3ext.h | 6 + src/sqliteInt.h | 43 +- src/tclsqlite.c | 225 +- src/test1.c | 34 +- src/test4.c | 44 +- src/test_fs.c | 18 +- src/test_func.c | 19 + src/test_tclsh.c | 2 + src/test_vdbecov.c | 120 + src/test_vfs.c | 2 + src/tokenize.c | 8 +- src/treeview.c | 50 +- src/utf.c | 14 +- src/util.c | 37 +- src/vacuum.c | 14 +- src/vdbe.c | 118 +- src/vdbeInt.h | 10 +- src/vdbeapi.c | 64 +- src/vdbeaux.c | 17 +- src/vdbemem.c | 30 +- src/vdbesort.c | 14 +- src/vtab.c | 25 +- src/wal.c | 11 +- src/where.c | 10 +- src/wherecode.c | 46 +- src/whereexpr.c | 6 + src/window.c | 2431 ++- test/altertab2.test | 2 + test/altertab3.test | 61 + test/autoinc.test | 24 + test/autoindex5.test | 3 + test/badutf2.test | 18 +- test/bestindex1.test | 57 + test/capi3d.test | 22 +- test/corrupt2.test | 18 +- test/corruptC.test | 3 +- test/corruptD.test | 5 +- test/corruptK.test | 6 + test/corruptL.test | 122 +- test/createtab.test | 10 +- test/dbfuzz001.test | 6 +- test/dbfuzz2.c | 37 + test/delete4.test | 77 + test/e_vacuum.test | 47 +- test/fts3atoken.test | 38 + test/fts3corrupt4.test | 865 +- test/fts3expr4.test | 2 +- test/fts3varint.test | 9 +- test/func.test | 28 + test/fuzzcheck.c | 4 +- test/fuzzdata7.db | Bin 16417792 -> 16793600 bytes test/fuzzdata8.db | Bin 960512 -> 1057792 bytes test/in.test | 21 + test/indexfault.test | 10 + test/insert4.test | 20 + test/journal3.test | 3 + test/like3.test | 52 + test/memdb1.test | 18 + test/permutations.test | 16 +- test/pg_common.tcl | 35 +- test/pragma.test | 25 + test/pragma4.test | 7 + test/printf.test | 2 +- test/releasetest.tcl | 25 +- test/releasetest_data.tcl | 412 + test/scanstatus.test | 2 +- test/sessionfuzz.c | 1 - test/shell1.test | 2 + test/skipscan1.test | 28 + test/skipscan2.test | 1 + test/sqllimits1.test | 10 + test/tclsqlite.test | 140 +- test/tester.tcl | 40 + test/triggerC.test | 14 + test/vacuum-into.test | 13 + test/wal2.test | 6 +- test/wapp.tcl | 987 + test/wapptest.tcl | 674 + test/where.test | 101 + test/window1.test | 448 + test/window3.tcl | 28 +- test/window3.test | 34183 ++++++++++++++++++++++++++++-- test/window4.tcl | 2 +- test/window4.test | 9 +- test/window6.test | 55 +- test/window7.tcl | 91 + test/window7.test | 94 + test/window8.tcl | 299 + test/window8.test | 4875 +++++ test/windowerr.tcl | 69 + test/windowerr.test | 111 + test/windowfault.test | 63 +- test/without_rowid1.test | 36 + tool/addopcodes.tcl | 64 - tool/cg_anno.tcl | 4 +- tool/dbtotxt.c | 2 +- tool/extract-sqlite3h.tcl | 21 + tool/mkkeywordhash.c | 10 +- tool/omittest.tcl | 13 +- tool/showdb.c | 2 +- tool/symbols.sh | 10 +- 175 files changed, 48425 insertions(+), 3395 deletions(-) create mode 100644 LICENSE.md create mode 100644 ext/misc/blobio.c create mode 100644 ext/misc/fossildelta.c create mode 100644 ext/rbu/rbupartial.test create mode 100644 src/test_vdbecov.c create mode 100644 test/releasetest_data.tcl create mode 100644 test/wapp.tcl create mode 100755 test/wapptest.tcl create mode 100644 test/window7.tcl create mode 100644 test/window7.test create mode 100644 test/window8.tcl create mode 100644 test/window8.test create mode 100644 test/windowerr.tcl create mode 100644 test/windowerr.test delete mode 100644 tool/addopcodes.tcl create mode 100755 tool/extract-sqlite3h.tcl diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000000..f68a6c175f --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,6 @@ +The author disclaims copyright to this source code. In place of +a legal notice, here is a blessing: + + * May you do good and not evil. + * May you find forgiveness for yourself and forgive others. + * May you share freely, never taking more than you give. diff --git a/Makefile.in b/Makefile.in index 65530e33c5..8df09826fc 100644 --- a/Makefile.in +++ b/Makefile.in @@ -422,6 +422,7 @@ TESTSRC = \ $(TOP)/src/test_tclsh.c \ $(TOP)/src/test_tclvar.c \ $(TOP)/src/test_thread.c \ + $(TOP)/src/test_vdbecov.c \ $(TOP)/src/test_vfs.c \ $(TOP)/src/test_windirent.c \ $(TOP)/src/test_window.c \ @@ -1050,12 +1051,9 @@ opcodes.h: parse.h $(TOP)/src/vdbe.c $(TOP)/tool/mkopcodeh.tcl # parse.h: parse.c -parse.c: $(TOP)/src/parse.y lemon$(BEXE) $(TOP)/tool/addopcodes.tcl +parse.c: $(TOP)/src/parse.y lemon$(BEXE) cp $(TOP)/src/parse.y . - rm -f parse.h ./lemon$(BEXE) $(OPT_FEATURE_FLAGS) $(OPTS) parse.y - mv parse.h parse.h.temp - $(TCLSH_CMD) $(TOP)/tool/addopcodes.tcl parse.h.temp >parse.h sqlite3.h: $(TOP)/src/sqlite.h.in $(TOP)/manifest mksourceid$(BEXE) $(TOP)/VERSION $(TCLSH_CMD) $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h @@ -1149,10 +1147,10 @@ fts3_write.lo: $(TOP)/ext/fts3/fts3_write.c $(HDR) $(EXTHDR) rtree.lo: $(TOP)/ext/rtree/rtree.c $(HDR) $(EXTHDR) $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/rtree/rtree.c -sqlite3session.lo: $(TOP)/ext/userauth/userauth.c $(HDR) $(EXTHDR) +userauth.lo: $(TOP)/ext/userauth/userauth.c $(HDR) $(EXTHDR) $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/userauth/userauth.c -userauth.lo: $(TOP)/ext/session/sqlite3session.c $(HDR) $(EXTHDR) +sqlite3session.lo: $(TOP)/ext/session/sqlite3session.c $(HDR) $(EXTHDR) $(LTCOMPILE) -DSQLITE_CORE -c $(TOP)/ext/session/sqlite3session.c json1.lo: $(TOP)/ext/misc/json1.c @@ -1374,8 +1372,9 @@ loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la # releasetest.tcl script. # VALIDIDS=' sqlite3(changeset|changegroup|session)?_' -checksymbols: sqlite3.lo - nm -g --defined-only sqlite3.lo | egrep -v $(VALIDIDS); test $$? -ne 0 +checksymbols: sqlite3.o + nm -g --defined-only sqlite3.o + nm -g --defined-only sqlite3.o | egrep -v $(VALIDIDS); test $$? -ne 0 echo '0 errors out of 1 tests' # Build the amalgamation-autoconf package. The amalamgation-tarball target builds @@ -1424,7 +1423,7 @@ install: sqlite3$(TEXE) lib_install sqlite3.h sqlite3.pc ${HAVE_TCL:1=tcl_instal $(INSTALL) -m 0644 sqlite3.pc $(DESTDIR)$(pkgconfigdir) pkgIndex.tcl: - echo 'package ifneeded sqlite3 $(RELEASE) [list load $(TCLLIBDIR)/libtclsqlite3$(SHLIB_SUFFIX) sqlite3]' > $@ + echo 'package ifneeded sqlite3 $(RELEASE) [list load [file join $$dir libtclsqlite3[info sharedlibextension]] sqlite3]' > $@ tcl_install: lib_install libtclsqlite3.la pkgIndex.tcl $(INSTALL) -d $(DESTDIR)$(TCLLIBDIR) $(LTINSTALL) libtclsqlite3.la $(DESTDIR)$(TCLLIBDIR) diff --git a/Makefile.msc b/Makefile.msc index b4fa372f9a..595763cdb7 100644 --- a/Makefile.msc +++ b/Makefile.msc @@ -320,6 +320,13 @@ SQLITETCLH = sqlite_tcl.h SQLITETCLDECLSH = sqlite_tclDecls.h !ENDIF +# This is the name to use for the dynamic link library (DLL) containing the +# Tcl bindings for SQLite. +# +!IFNDEF SQLITE3TCLDLL +SQLITE3TCLDLL = tclsqlite3.dll +!ENDIF + # These are the additional targets that the targets that integrate with the # Tcl library should depend on when compiling, etc. # @@ -495,9 +502,9 @@ UCRTLIBPATH = $(UCRTLIBPATH:\\=\) # will run on the platform that is doing the build. # !IF $(USE_FULLWARN)!=0 -BCC = $(NCC) -nologo -W4 $(CCOPTS) $(BCCOPTS) +BCC = $(NCC) -nologo -W4 -Fd$*.pdb $(CCOPTS) $(BCCOPTS) !ELSE -BCC = $(NCC) -nologo -W3 $(CCOPTS) $(BCCOPTS) +BCC = $(NCC) -nologo -W3 -Fd$*.pdb $(CCOPTS) $(BCCOPTS) !ENDIF # Check if assembly code listings should be generated for the source @@ -853,6 +860,14 @@ RCC = $(RCC) -DSQLITE_WIN32_MALLOC_VALIDATE=1 # prior to running nmake in order to match the actual installed location and # version on this machine. # +!IFNDEF TCLVERSION +TCLVERSION = 86 +!ENDIF + +!IFNDEF TCLSUFFIX +TCLSUFFIX = +!ENDIF + !IFNDEF TCLDIR TCLDIR = $(TOP)\compat\tcl !ENDIF @@ -866,11 +881,11 @@ TCLLIBDIR = $(TCLDIR)\lib !ENDIF !IFNDEF LIBTCL -LIBTCL = tcl86.lib +LIBTCL = tcl$(TCLVERSION)$(TCLSUFFIX).lib !ENDIF !IFNDEF LIBTCLSTUB -LIBTCLSTUB = tclstub86.lib +LIBTCLSTUB = tclstub$(TCLVERSION)$(TCLSUFFIX).lib !ENDIF !IFNDEF LIBTCLPATH @@ -1063,7 +1078,7 @@ RCC = $(RCC) -I$(ICUINCDIR) # Command line prefixes for compiling code, compiling resources, # linking, etc. # -LTCOMPILE = $(TCC) -Fo$@ +LTCOMPILE = $(TCC) -Fo$@ -Fd$*.pdb LTRCOMPILE = $(RCC) -r LTLIB = lib.exe LTLINK = $(TCC) -Fe$@ @@ -1081,6 +1096,11 @@ LTLIBS = $(LTLIBS) rpcrt4.lib !IFDEF PLATFORM LTLINKOPTS = /NOLOGO /MACHINE:$(PLATFORM) LTLIBOPTS = /NOLOGO /MACHINE:$(PLATFORM) +!ELSEIF "$(VISUALSTUDIOVERSION)"=="12.0" || \ + "$(VISUALSTUDIOVERSION)"=="14.0" || \ + "$(VISUALSTUDIOVERSION)"=="15.0" +LTLINKOPTS = /NOLOGO /MACHINE:x86 +LTLIBOPTS = /NOLOGO /MACHINE:x86 !ELSE LTLINKOPTS = /NOLOGO LTLIBOPTS = /NOLOGO @@ -1497,6 +1517,7 @@ TESTSRC = \ $(TOP)\src\test_tclsh.c \ $(TOP)\src\test_tclvar.c \ $(TOP)\src\test_thread.c \ + $(TOP)\src\test_vdbecov.c \ $(TOP)\src\test_vfs.c \ $(TOP)\src\test_windirent.c \ $(TOP)\src\test_window.c \ @@ -1665,7 +1686,7 @@ TESTOPTS = --verbose=file --output=test-out.txt # Extra targets for the "all" target that require Tcl. # !IF $(NO_TCL)==0 -ALL_TCL_TARGETS = libtclsqlite3.lib +ALL_TCL_TARGETS = $(SQLITE3TCLDLL) !ELSE ALL_TCL_TARGETS = !ENDIF @@ -1697,7 +1718,22 @@ libsqlite3.lib: $(LIBOBJ) $(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS) libtclsqlite3.lib: tclsqlite.lo libsqlite3.lib - $(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCLSTUB) $(TLIBS) + $(LTLIB) $(LTLIBOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCLSTUB) $(TLIBS) + +tclsqlite3.def: tclsqlite.lo + echo EXPORTS > tclsqlite3.def + dumpbin /all tclsqlite.lo \ + | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+/EXPORT:_?((?:Sqlite3|Tclsqlite3)_[^@]*)(?:@\d+)?$$" \1 \ + | sort >> tclsqlite3.def + +pkgIndex.tcl: $(TOP)\VERSION + for /F %%V in ('type "$(TOP)\VERSION"') do ( \ + echo package ifneeded sqlite3 @version@ [list load [file join $$dir $(SQLITE3TCLDLL)] sqlite3] \ + | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact @version@ %%V > pkgIndex.tcl \ + ) + +$(SQLITE3TCLDLL): libtclsqlite3.lib $(LIBRESOBJS) tclsqlite3.def pkgIndex.tcl + $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:tclsqlite3.def /OUT:$@ libtclsqlite3.lib $(LIBRESOBJS) $(LTLIBS) $(TLIBS) # <> $(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP) @@ -1837,7 +1873,7 @@ opcodes.lo: opcodes.c # !IF $(USE_RC)!=0 # <> -$(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(SQLITE3H) +$(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(SQLITE3H) $(TOP)\VERSION echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h for /F %%V in ('type "$(TOP)\VERSION"') do ( \ echo #define SQLITE_RESOURCE_VERSION %%V \ @@ -2103,12 +2139,10 @@ opcodes.h: parse.h $(TOP)\src\vdbe.c $(TOP)\tool\mkopcodeh.tcl # parse.h: parse.c -parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\tool\addopcodes.tcl +parse.c: $(TOP)\src\parse.y lemon.exe del /Q parse.y parse.h parse.h.temp 2>NUL copy $(TOP)\src\parse.y . .\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(EXT_FEATURE_FLAGS) $(OPTS) parse.y - move parse.h parse.h.temp - $(TCLSH_CMD) $(TOP)\tool\addopcodes.tcl parse.h.temp > parse.h $(SQLITE3H): $(TOP)\src\sqlite.h.in $(TOP)\manifest mksourceid.exe $(TOP)\VERSION $(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > $(SQLITE3H) $(MKSQLITE3H_ARGS) @@ -2514,6 +2548,7 @@ clean: del /Q *.bsc *.def *.cod *.da *.bb *.bbg *.vc gmon.out 2>NUL del /Q $(SQLITE3EXE) $(SQLITE3DLL) Replace.exe 2>NUL # <> + del /Q $(SQLITE3TCLDLL) pkgIndex.tcl 2>NUL del /Q opcodes.c opcodes.h 2>NUL del /Q lemon.* lempar.c parse.* 2>NUL del /Q mksourceid.* mkkeywordhash.* keywordhash.h 2>NUL @@ -2524,6 +2559,7 @@ clean: del /Q .target_source 2>NUL del /Q tclsqlite3.exe $(SQLITETCLH) $(SQLITETCLDECLSH) 2>NUL del /Q lsm.dll lsmtest.exe 2>NUL + del /Q atrc.exe changesetfuzz.exe dbtotxt.exe index_usage.exe 2>NUL del /Q testloadext.dll 2>NUL del /Q testfixture.exe test.db 2>NUL del /Q LogEst.exe fts3view.exe rollback-test.exe showdb.exe dbdump.exe 2>NUL diff --git a/README.md b/README.md index 87f1f81103..6f9510a59f 100644 --- a/README.md +++ b/README.md @@ -5,16 +5,28 @@ This repository contains the complete source code for the are also included. However, many other test scripts and most of the documentation are managed separately. -SQLite [does not use Git](https://sqlite.org/whynotgit.html). -If you are reading this on GitHub, then you are looking at an -unofficial mirror. See for the official -repository. - -## Obtaining The Code +## Version Control SQLite sources are managed using the [Fossil](https://www.fossil-scm.org/), a distributed version control system -that was specifically designed to support SQLite development. +that was specifically designed and written to support SQLite development. +The [Fossil repository](https://sqlite.org/src/timeline) contains the urtext. + +If you are reading this on GitHub or some other Git repository or service, +then you are looking at a mirror. The names of check-ins and +other artifacts in a Git mirror are different from the official +names for those objects. The offical names for check-ins are +found in a footer on the check-in comment for authorized mirrors. +The official check-in name can also be seen in the `manifest.uuid` file +in the root of the tree. Always use the official name, not the +Git-name, when communicating about an SQLite check-in. + +If you pulled your SQLite source code from a secondary source and want to +verify its integrity, there are hints on how to do that in the +[Verifying Code Authenticity](#vauth) section below. + +## Obtaining The Code + If you do not want to use Fossil, you can download tarballs or ZIP archives or [SQLite archives](https://sqlite.org/cli.html#sqlar) as follows: @@ -29,7 +41,7 @@ archives or [SQLite archives](https://sqlite.org/cli.html#sqlar) as follows: [SQLite-archive](https://www.sqlite.org/src/sqlar/sqlite.sqlar?r=release). * For other check-ins, substitute an appropriate branch name or - tag or hash prefix for "release" in the URLs of the previous + tag or hash prefix in place of "release" in the URLs of the previous bullet. Or browse the [timeline](https://www.sqlite.org/src/timeline) to locate the check-in desired, click on its information page link, then click on the "Tarball" or "ZIP Archive" links on the information @@ -163,11 +175,8 @@ the src/parse.y file. The conversion of "parse.y" into "parse.c" is done by the [lemon](./doc/lemon.html) LALR(1) parser generator. The source code for lemon is at tool/lemon.c. Lemon uses the tool/lempar.c file as a template for generating its parser. - Lemon also generates the **parse.h** header file, at the same time it -generates parse.c. But the parse.h header file is -modified further (to add additional symbols) using the ./addopcodes.tcl -Tcl script. +generates parse.c. The **opcodes.h** header file contains macros that define the numbers corresponding to opcodes in the "VDBE" virtual machine. The opcodes.h @@ -294,10 +303,42 @@ Key files: There are many other source files. Each has a succinct header comment that describes its purpose and role within the larger system. + +## Verifying Code Authenticity + +If you obtained an SQLite source tree from a secondary source, such as a +GitHub mirror, and you want to verify that it has not been altered, there +are a couple of ways to do that. + +If you have a release version of SQLite, and you are using the +`sqlite3.c` amalgamation, then SHA3-256 hashes for the amalgamation are +available in the [change log](https://www.sqlite.org/changes.html) on +the official website. After building the `sqlite3.c` file, you can check +that it is authentic by comparing the hash. This does not ensure that the +test scripts are unaltered, but it does validate the deliverable part of +the code and the verification process only involves computing and +comparing a single hash. + +For versions other than an official release, or if you are building the +`sqlite3.c` amalgamation using non-standard build options, the verification +process is a little more involved. The `manifest` file at the root directory +of the source tree +contains either a SHA3-256 hash (for newer files) or a SHA1 hash (for +older files) for every source file in the repository. You can write a script +to extracts hashes from `manifest` and verifies the hashes against the +corresponding files in the source tree. The SHA3-256 hash of the `manifest` +file itself is the official name of the version of the source tree that you +have. The `manifest.uuid` file should contain the SHA3-256 hash of the +`manifest` file. If all of the above hash comparisons are correct, then +you can be confident that your source tree is authentic and unadulterated. + +The format of the `manifest` file should be mostly self-explanatory, but +if you want details, they are available +[here](https://fossil-scm.org/fossil/doc/trunk/www/fileformat.wiki#manifest). ## Contacts -The main SQLite webpage is [http://www.sqlite.org/](http://www.sqlite.org/) +The main SQLite website is [http://www.sqlite.org/](http://www.sqlite.org/) with geographically distributed backups at [http://www2.sqlite.org/](http://www2.sqlite.org) and [http://www3.sqlite.org/](http://www3.sqlite.org). diff --git a/VERSION b/VERSION index 8e6b2f2e49..a72fd67b60 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.27.2 +3.28.0 diff --git a/autoconf/Makefile.msc b/autoconf/Makefile.msc index a131d4c6e7..df9b96a66a 100644 --- a/autoconf/Makefile.msc +++ b/autoconf/Makefile.msc @@ -433,9 +433,9 @@ UCRTLIBPATH = $(UCRTLIBPATH:\\=\) # will run on the platform that is doing the build. # !IF $(USE_FULLWARN)!=0 -BCC = $(NCC) -nologo -W4 $(CCOPTS) $(BCCOPTS) +BCC = $(NCC) -nologo -W4 -Fd$*.pdb $(CCOPTS) $(BCCOPTS) !ELSE -BCC = $(NCC) -nologo -W3 $(CCOPTS) $(BCCOPTS) +BCC = $(NCC) -nologo -W3 -Fd$*.pdb $(CCOPTS) $(BCCOPTS) !ENDIF # Check if assembly code listings should be generated for the source @@ -808,7 +808,7 @@ BCC = $(BCC) -Zi # Command line prefixes for compiling code, compiling resources, # linking, etc. # -LTCOMPILE = $(TCC) -Fo$@ +LTCOMPILE = $(TCC) -Fo$@ -Fd$*.pdb LTRCOMPILE = $(RCC) -r LTLIB = lib.exe LTLINK = $(TCC) -Fe$@ @@ -826,6 +826,11 @@ LTLIBS = $(LTLIBS) rpcrt4.lib !IFDEF PLATFORM LTLINKOPTS = /NOLOGO /MACHINE:$(PLATFORM) LTLIBOPTS = /NOLOGO /MACHINE:$(PLATFORM) +!ELSEIF "$(VISUALSTUDIOVERSION)"=="12.0" || \ + "$(VISUALSTUDIOVERSION)"=="14.0" || \ + "$(VISUALSTUDIOVERSION)"=="15.0" +LTLINKOPTS = /NOLOGO /MACHINE:x86 +LTLIBOPTS = /NOLOGO /MACHINE:x86 !ELSE LTLINKOPTS = /NOLOGO LTLIBOPTS = /NOLOGO diff --git a/configure b/configure index ce6389ef02..b957c3c63e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for sqlite 3.27.2. +# Generated by GNU Autoconf 2.69 for sqlite 3.28.0. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -726,8 +726,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' -PACKAGE_VERSION='3.27.2' -PACKAGE_STRING='sqlite 3.27.2' +PACKAGE_VERSION='3.28.0' +PACKAGE_STRING='sqlite 3.28.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -863,6 +863,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -964,6 +965,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1216,6 +1218,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1353,7 +1364,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1466,7 +1477,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sqlite 3.27.2 to adapt to many kinds of systems. +\`configure' configures sqlite 3.28.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1506,6 +1517,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1531,7 +1543,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.27.2:";; + short | recursive ) echo "Configuration of sqlite 3.28.0:";; esac cat <<\_ACEOF @@ -1657,7 +1669,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sqlite configure 3.27.2 +sqlite configure 3.28.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2076,7 +2088,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sqlite $as_me 3.27.2, which was +It was created by sqlite $as_me 3.28.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3934,13 +3946,13 @@ if ${lt_cv_nm_interface+:} false; then : else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:3937: $ac_compile\"" >&5) + (eval echo "\"\$as_me:3949: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:3940: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:3952: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:3943: output\"" >&5) + (eval echo "\"\$as_me:3955: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5146,7 +5158,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5149 "configure"' > conftest.$ac_ext + echo '#line 5161 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6671,11 +6683,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6674: $lt_compile\"" >&5) + (eval echo "\"\$as_me:6686: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:6678: \$? = $ac_status" >&5 + echo "$as_me:6690: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7010,11 +7022,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7013: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7025: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7017: \$? = $ac_status" >&5 + echo "$as_me:7029: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7115,11 +7127,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7118: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7130: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7122: \$? = $ac_status" >&5 + echo "$as_me:7134: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -7170,11 +7182,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7173: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7185: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7177: \$? = $ac_status" >&5 + echo "$as_me:7189: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -9550,7 +9562,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 9553 "configure" +#line 9565 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -9646,7 +9658,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 9649 "configure" +#line 9661 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -9995,7 +10007,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -10041,7 +10053,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -10065,7 +10077,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -10110,7 +10122,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -10134,7 +10146,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) +#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -12232,7 +12244,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sqlite $as_me 3.27.2, which was +This file was extended by sqlite $as_me 3.28.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12298,7 +12310,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sqlite config.status 3.27.2 +sqlite config.status 3.28.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/ext/fts3/README.tokenizers b/ext/fts3/README.tokenizers index 7f2345a81f..70bdceff06 100644 --- a/ext/fts3/README.tokenizers +++ b/ext/fts3/README.tokenizers @@ -52,8 +52,10 @@ SECURITY: If the fts3 extension is used in an environment where potentially malicious users may execute arbitrary SQL (i.e. gears), they should be - prevented from invoking the fts3_tokenizer() function, possibly using the - authorisation callback. + prevented from invoking the fts3_tokenizer() function. The + fts3_tokenizer() function is disabled by default. It is only enabled + by SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER. Do not enable it in + security sensitive environments. See "Sample code" below for an example of calling the fts3_tokenizer() function from C code. diff --git a/ext/fts3/fts3.c b/ext/fts3/fts3.c index bd0003d063..b357fcd421 100644 --- a/ext/fts3/fts3.c +++ b/ext/fts3/fts3.c @@ -1873,7 +1873,7 @@ static int fts3ScanInteriorNode( zCsr += fts3GetVarint32(zCsr, &nSuffix); assert( nPrefix>=0 && nSuffix>=0 ); - if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr ){ + if( nPrefix>zCsr-zNode || nSuffix>zEnd-zCsr || nSuffix==0 ){ rc = FTS_CORRUPT_VTAB; goto finish_scan; } diff --git a/ext/fts3/fts3_snippet.c b/ext/fts3/fts3_snippet.c index 115e98abfc..d5ebda6a05 100644 --- a/ext/fts3/fts3_snippet.c +++ b/ext/fts3/fts3_snippet.c @@ -128,17 +128,19 @@ struct StrBuffer { /* ** Allocate a two-slot MatchinfoBuffer object. */ -static MatchinfoBuffer *fts3MIBufferNew(int nElem, const char *zMatchinfo){ +static MatchinfoBuffer *fts3MIBufferNew(size_t nElem, const char *zMatchinfo){ MatchinfoBuffer *pRet; - int nByte = sizeof(u32) * (2*nElem + 1) + sizeof(MatchinfoBuffer); - int nStr = (int)strlen(zMatchinfo); + sqlite3_int64 nByte = sizeof(u32) * (2*(sqlite3_int64)nElem + 1) + + sizeof(MatchinfoBuffer); + sqlite3_int64 nStr = strlen(zMatchinfo); - pRet = sqlite3_malloc(nByte + nStr+1); + pRet = sqlite3_malloc64(nByte + nStr+1); if( pRet ){ memset(pRet, 0, nByte); pRet->aMatchinfo[0] = (u8*)(&pRet->aMatchinfo[1]) - (u8*)pRet; - pRet->aMatchinfo[1+nElem] = pRet->aMatchinfo[0] + sizeof(u32)*(nElem+1); - pRet->nElem = nElem; + pRet->aMatchinfo[1+nElem] = pRet->aMatchinfo[0] + + sizeof(u32)*((int)nElem+1); + pRet->nElem = (int)nElem; pRet->zMatchinfo = ((char*)pRet) + nByte; memcpy(pRet->zMatchinfo, zMatchinfo, nStr+1); pRet->aRef[0] = 1; @@ -429,7 +431,7 @@ static void fts3SnippetDetails( char *pCsr = pPhrase->pTail; int iCsr = pPhrase->iTail; - while( iCsr<(iStart+pIter->nSnippet) ){ + while( iCsr<(iStart+pIter->nSnippet) && iCsr>=iStart ){ int j; u64 mPhrase = (u64)1 << i; u64 mPos = (u64)1 << (iCsr - iStart); @@ -999,8 +1001,8 @@ static int fts3MatchinfoCheck( return SQLITE_ERROR; } -static int fts3MatchinfoSize(MatchInfo *pInfo, char cArg){ - int nVal; /* Number of integers output by cArg */ +static size_t fts3MatchinfoSize(MatchInfo *pInfo, char cArg){ + size_t nVal; /* Number of integers output by cArg */ switch( cArg ){ case FTS3_MATCHINFO_NDOC: @@ -1284,7 +1286,7 @@ static int fts3MatchinfoValues( case FTS3_MATCHINFO_LHITS_BM: case FTS3_MATCHINFO_LHITS: { - int nZero = fts3MatchinfoSize(pInfo, zArg[i]) * sizeof(u32); + size_t nZero = fts3MatchinfoSize(pInfo, zArg[i]) * sizeof(u32); memset(pInfo->aMatchinfo, 0, nZero); rc = fts3ExprLHitGather(pCsr->pExpr, pInfo); break; @@ -1353,7 +1355,7 @@ static void fts3GetMatchinfo( ** initialize those elements that are constant for every row. */ if( pCsr->pMIBuffer==0 ){ - int nMatchinfo = 0; /* Number of u32 elements in match-info */ + size_t nMatchinfo = 0; /* Number of u32 elements in match-info */ int i; /* Used to iterate through zArg */ /* Determine the number of phrases in the query */ @@ -1543,7 +1545,7 @@ static int fts3ExprTermOffsetInit(Fts3Expr *pExpr, int iPhrase, void *ctx){ nTerm = pExpr->pPhrase->nToken; if( pList ){ fts3GetDeltaPosition(&pList, &iPos); - assert( iPos>=0 ); + assert_fts3_nc( iPos>=0 ); } for(iTerm=0; iTermpList) ){ pTerm->pList = 0; }else{ diff --git a/ext/fts3/fts3_term.c b/ext/fts3/fts3_term.c index e8372190d4..47e244e22c 100644 --- a/ext/fts3/fts3_term.c +++ b/ext/fts3/fts3_term.c @@ -98,7 +98,7 @@ static int fts3termConnectMethod( nByte = sizeof(Fts3termTable) + sizeof(Fts3Table) + nDb + nFts3 + 2; p = (Fts3termTable *)sqlite3_malloc64(nByte); if( !p ) return SQLITE_NOMEM; - memset(p, 0, nByte); + memset(p, 0, (size_t)nByte); p->pFts3Tab = (Fts3Table *)&p[1]; p->pFts3Tab->zDb = (char *)&p->pFts3Tab[1]; diff --git a/ext/fts3/fts3_test.c b/ext/fts3/fts3_test.c index 8bf7804de0..fa0f00a6ce 100644 --- a/ext/fts3/fts3_test.c +++ b/ext/fts3/fts3_test.c @@ -448,14 +448,14 @@ static int testTokenizerNext( }else{ /* Advance to the end of the token */ const char *pToken = p; - int nToken; + sqlite3_int64 nToken; while( ppCsr->nBuffer ){ sqlite3_free(pCsr->aBuffer); - pCsr->aBuffer = sqlite3_malloc(nToken); + pCsr->aBuffer = sqlite3_malloc64(nToken); } if( pCsr->aBuffer==0 ){ rc = SQLITE_NOMEM; @@ -471,7 +471,7 @@ static int testTokenizerNext( pCsr->iInput = (int)(p - pCsr->aInput); *ppToken = pCsr->aBuffer; - *pnBytes = nToken; + *pnBytes = (int)nToken; *piStartOffset = (int)(pToken - pCsr->aInput); *piEndOffset = (int)(p - pCsr->aInput); *piPosition = pCsr->iToken; diff --git a/ext/fts3/fts3_tokenize_vtab.c b/ext/fts3/fts3_tokenize_vtab.c index b5bf8add02..313a3c0ffb 100644 --- a/ext/fts3/fts3_tokenize_vtab.c +++ b/ext/fts3/fts3_tokenize_vtab.c @@ -346,7 +346,7 @@ static int fts3tokFilterMethod( if( idxNum==1 ){ const char *zByte = (const char *)sqlite3_value_text(apVal[0]); int nByte = sqlite3_value_bytes(apVal[0]); - pCsr->zInput = sqlite3_malloc(nByte+1); + pCsr->zInput = sqlite3_malloc64(nByte+1); if( pCsr->zInput==0 ){ rc = SQLITE_NOMEM; }else{ diff --git a/ext/fts3/fts3_tokenizer.c b/ext/fts3/fts3_tokenizer.c index bfc36af3e3..0196f0f2d5 100644 --- a/ext/fts3/fts3_tokenizer.c +++ b/ext/fts3/fts3_tokenizer.c @@ -79,7 +79,7 @@ static void fts3TokenizerFunc( nName = sqlite3_value_bytes(argv[0])+1; if( argc==2 ){ - if( fts3TokenizerEnabled(context) ){ + if( fts3TokenizerEnabled(context) || sqlite3_value_frombind(argv[1]) ){ void *pOld; int n = sqlite3_value_bytes(argv[1]); if( zName==0 || n!=sizeof(pPtr) ){ @@ -106,7 +106,9 @@ static void fts3TokenizerFunc( return; } } - sqlite3_result_blob(context, (void *)&pPtr, sizeof(pPtr), SQLITE_TRANSIENT); + if( fts3TokenizerEnabled(context) || sqlite3_value_frombind(argv[0]) ){ + sqlite3_result_blob(context, (void *)&pPtr, sizeof(pPtr), SQLITE_TRANSIENT); + } } int sqlite3Fts3IsIdChar(char c){ @@ -194,8 +196,8 @@ int sqlite3Fts3InitTokenizer( int iArg = 0; z = &z[n+1]; while( z=iLeafEndBlock, this is an EOF condition. All leaf ** blocks have already been traversed. */ - assert( pReader->iCurrentBlock<=pReader->iLeafEndBlock ); +#ifdef CORRUPT_DB + assert( pReader->iCurrentBlock<=pReader->iLeafEndBlock || CORRUPT_DB ); +#endif if( pReader->iCurrentBlock>=pReader->iLeafEndBlock ){ return SQLITE_OK; } @@ -1750,8 +1752,9 @@ int sqlite3Fts3SegReaderPending( } if( nElem>0 ){ - int nByte = sizeof(Fts3SegReader) + (nElem+1)*sizeof(Fts3HashElem *); - pReader = (Fts3SegReader *)sqlite3_malloc(nByte); + sqlite3_int64 nByte; + nByte = sizeof(Fts3SegReader) + (nElem+1)*sizeof(Fts3HashElem *); + pReader = (Fts3SegReader *)sqlite3_malloc64(nByte); if( !pReader ){ rc = SQLITE_NOMEM; }else{ @@ -3235,8 +3238,10 @@ static int fts3SegmentMerge( if( rc!=SQLITE_OK ) goto finished; assert( csr.nSegment>0 ); - assert( iNewLevel>=getAbsoluteLevel(p, iLangid, iIndex, 0) ); - assert( iNewLevel=getAbsoluteLevel(p, iLangid, iIndex, 0) ); + assert_fts3_nc( + iNewLevelnColumn ); + pBlob = sqlite3_malloc64( 10*(sqlite3_int64)p->nColumn ); if( pBlob==0 ){ *pRC = SQLITE_NOMEM; return; @@ -3413,7 +3418,7 @@ static void fts3UpdateDocTotals( const int nStat = p->nColumn+2; if( *pRC ) return; - a = sqlite3_malloc( (sizeof(u32)+10)*nStat ); + a = sqlite3_malloc64( (sizeof(u32)+10)*(sqlite3_int64)nStat ); if( a==0 ){ *pRC = SQLITE_NOMEM; return; @@ -3534,8 +3539,8 @@ static int fts3DoRebuild(Fts3Table *p){ } if( rc==SQLITE_OK ){ - int nByte = sizeof(u32) * (p->nColumn+1)*3; - aSz = (u32 *)sqlite3_malloc(nByte); + sqlite3_int64 nByte = sizeof(u32) * ((sqlite3_int64)p->nColumn+1)*3; + aSz = (u32 *)sqlite3_malloc64(nByte); if( aSz==0 ){ rc = SQLITE_NOMEM; }else{ @@ -3601,12 +3606,12 @@ static int fts3IncrmergeCsr( ){ int rc; /* Return Code */ sqlite3_stmt *pStmt = 0; /* Statement used to read %_segdir entry */ - int nByte; /* Bytes allocated at pCsr->apSegment[] */ + sqlite3_int64 nByte; /* Bytes allocated at pCsr->apSegment[] */ /* Allocate space for the Fts3MultiSegReader.aCsr[] array */ memset(pCsr, 0, sizeof(*pCsr)); nByte = sizeof(Fts3SegReader *) * nSeg; - pCsr->apSegment = (Fts3SegReader **)sqlite3_malloc(nByte); + pCsr->apSegment = (Fts3SegReader **)sqlite3_malloc64(nByte); if( pCsr->apSegment==0 ){ rc = SQLITE_NOMEM; @@ -5586,7 +5591,7 @@ int sqlite3Fts3UpdateMethod( } /* Allocate space to hold the change in document sizes */ - aSzDel = sqlite3_malloc( sizeof(aSzDel[0])*(p->nColumn+1)*2 ); + aSzDel = sqlite3_malloc64(sizeof(aSzDel[0])*((sqlite3_int64)p->nColumn+1)*2); if( aSzDel==0 ){ rc = SQLITE_NOMEM; goto update_out; diff --git a/ext/fts3/unicode/mkunicode.tcl b/ext/fts3/unicode/mkunicode.tcl index 7e24aaa46a..a4cc540282 100644 --- a/ext/fts3/unicode/mkunicode.tcl +++ b/ext/fts3/unicode/mkunicode.tcl @@ -738,7 +738,7 @@ proc print_categories {lMap} { int bToken = aArray[ aFts5UnicodeData[iTbl] & 0x1F ]; int n = (aFts5UnicodeData[iTbl] >> 5) + i; for(; i<128 && inDocsize ) iAdj = nDocsize - nToken; if( iAdj<0 ) iAdj = 0; - *piPos = iAdj; + *piPos = (int)iAdj; } return rc; @@ -581,7 +581,7 @@ static int fts5Bm25GetData( if( p==0 ){ rc = SQLITE_NOMEM; }else{ - memset(p, 0, nByte); + memset(p, 0, (size_t)nByte); p->nPhrase = nPhrase; p->aIDF = (double*)&p[1]; p->aFreq = &p->aIDF[nPhrase]; diff --git a/ext/fts5/fts5_buffer.c b/ext/fts5/fts5_buffer.c index 61eb105fe7..b3d4984128 100644 --- a/ext/fts5/fts5_buffer.c +++ b/ext/fts5/fts5_buffer.c @@ -27,7 +27,7 @@ int sqlite3Fts5BufferSize(int *pRc, Fts5Buffer *pBuf, u32 nByte){ *pRc = SQLITE_NOMEM; return 1; }else{ - pBuf->nSpace = nNew; + pBuf->nSpace = (int)nNew; pBuf->p = pNew; } } @@ -251,7 +251,7 @@ void *sqlite3Fts5MallocZero(int *pRc, sqlite3_int64 nByte){ if( pRet==0 ){ if( nByte>0 ) *pRc = SQLITE_NOMEM; }else{ - memset(pRet, 0, nByte); + memset(pRet, 0, (size_t)nByte); } } return pRet; diff --git a/ext/fts5/fts5_config.c b/ext/fts5/fts5_config.c index b422c95ab0..7a16e38c93 100644 --- a/ext/fts5/fts5_config.c +++ b/ext/fts5/fts5_config.c @@ -325,7 +325,7 @@ static int fts5ConfigParseSpecial( rc = SQLITE_ERROR; }else{ rc = sqlite3Fts5GetTokenizer(pGlobal, - (const char**)azArg, nArg, &pConfig->pTok, &pConfig->pTokApi, + (const char**)azArg, (int)nArg, &pConfig->pTok, &pConfig->pTokApi, pzErr ); } @@ -435,7 +435,7 @@ static const char *fts5ConfigGobbleWord( if( zOut==0 ){ *pRc = SQLITE_NOMEM; }else{ - memcpy(zOut, zIn, nIn+1); + memcpy(zOut, zIn, (size_t)(nIn+1)); if( fts5_isopenquote(zOut[0]) ){ int ii = fts5Dequote(zOut); zRet = &zIn[ii]; diff --git a/ext/fts5/fts5_expr.c b/ext/fts5/fts5_expr.c index c5bfb08754..f1bf3f2abc 100644 --- a/ext/fts5/fts5_expr.c +++ b/ext/fts5/fts5_expr.c @@ -1487,7 +1487,7 @@ Fts5ExprNearset *sqlite3Fts5ParseNearset( if( pRet==0 ){ pParse->rc = SQLITE_NOMEM; }else{ - memset(pRet, 0, nByte); + memset(pRet, 0, (size_t)nByte); } }else if( (pNear->nPhrase % SZALLOC)==0 ){ int nNew = pNear->nPhrase + SZALLOC; @@ -1563,7 +1563,7 @@ static int fts5ParseTokenize( if( pSyn==0 ){ rc = SQLITE_NOMEM; }else{ - memset(pSyn, 0, nByte); + memset(pSyn, 0, (size_t)nByte); pSyn->zTerm = ((char*)pSyn) + sizeof(Fts5ExprTerm) + sizeof(Fts5Buffer); memcpy(pSyn->zTerm, pToken, nToken); pSyn->pSynonym = pPhrase->aTerm[pPhrase->nTerm-1].pSynonym; @@ -1723,7 +1723,7 @@ int sqlite3Fts5ExprClonePhrase( nByte = sizeof(Fts5Colset) + (pColsetOrig->nCol-1) * sizeof(int); pColset = (Fts5Colset*)sqlite3Fts5MallocZero(&rc, nByte); if( pColset ){ - memcpy(pColset, pColsetOrig, nByte); + memcpy(pColset, pColsetOrig, (size_t)nByte); } pNew->pRoot->pNear->pColset = pColset; } @@ -1940,7 +1940,7 @@ static Fts5Colset *fts5CloneColset(int *pRc, Fts5Colset *pOrig){ sqlite3_int64 nByte = sizeof(Fts5Colset) + (pOrig->nCol-1) * sizeof(int); pRet = (Fts5Colset*)sqlite3Fts5MallocZero(pRc, nByte); if( pRet ){ - memcpy(pRet, pOrig, nByte); + memcpy(pRet, pOrig, (size_t)nByte); } }else{ pRet = 0; diff --git a/ext/fts5/fts5_hash.c b/ext/fts5/fts5_hash.c index e0b91f0977..1a32dcdf0f 100644 --- a/ext/fts5/fts5_hash.c +++ b/ext/fts5/fts5_hash.c @@ -103,7 +103,7 @@ int sqlite3Fts5HashNew(Fts5Config *pConfig, Fts5Hash **ppNew, int *pnByte){ *ppNew = 0; rc = SQLITE_NOMEM; }else{ - memset(pNew->aSlot, 0, nByte); + memset(pNew->aSlot, 0, (size_t)nByte); } } return rc; @@ -187,19 +187,25 @@ static int fts5HashResize(Fts5Hash *pHash){ return SQLITE_OK; } -static void fts5HashAddPoslistSize(Fts5Hash *pHash, Fts5HashEntry *p){ +static int fts5HashAddPoslistSize( + Fts5Hash *pHash, + Fts5HashEntry *p, + Fts5HashEntry *p2 +){ + int nRet = 0; if( p->iSzPoslist ){ - u8 *pPtr = (u8*)p; + u8 *pPtr = p2 ? (u8*)p2 : (u8*)p; + int nData = p->nData; if( pHash->eDetail==FTS5_DETAIL_NONE ){ - assert( p->nData==p->iSzPoslist ); + assert( nData==p->iSzPoslist ); if( p->bDel ){ - pPtr[p->nData++] = 0x00; + pPtr[nData++] = 0x00; if( p->bContent ){ - pPtr[p->nData++] = 0x00; + pPtr[nData++] = 0x00; } } }else{ - int nSz = (p->nData - p->iSzPoslist - 1); /* Size in bytes */ + int nSz = (nData - p->iSzPoslist - 1); /* Size in bytes */ int nPos = nSz*2 + p->bDel; /* Value of nPos field */ assert( p->bDel==0 || p->bDel==1 ); @@ -209,14 +215,19 @@ static void fts5HashAddPoslistSize(Fts5Hash *pHash, Fts5HashEntry *p){ int nByte = sqlite3Fts5GetVarintLen((u32)nPos); memmove(&pPtr[p->iSzPoslist + nByte], &pPtr[p->iSzPoslist + 1], nSz); sqlite3Fts5PutVarint(&pPtr[p->iSzPoslist], nPos); - p->nData += (nByte-1); + nData += (nByte-1); } } - p->iSzPoslist = 0; - p->bDel = 0; - p->bContent = 0; + nRet = nData - p->nData; + if( p2==0 ){ + p->iSzPoslist = 0; + p->bDel = 0; + p->bContent = 0; + p->nData = nData; + } } + return nRet; } /* @@ -273,7 +284,7 @@ int sqlite3Fts5HashWrite( p = (Fts5HashEntry*)sqlite3_malloc64(nByte); if( !p ) return SQLITE_NOMEM; memset(p, 0, sizeof(Fts5HashEntry)); - p->nAlloc = nByte; + p->nAlloc = (int)nByte; zKey = fts5EntryKey(p); zKey[0] = bByte; memcpy(&zKey[1], pToken, nToken); @@ -328,7 +339,7 @@ int sqlite3Fts5HashWrite( /* If this is a new rowid, append the 4-byte size field for the previous ** entry, and the new rowid for this entry. */ if( iRowid!=p->iRowid ){ - fts5HashAddPoslistSize(pHash, p); + fts5HashAddPoslistSize(pHash, p, 0); p->nData += sqlite3Fts5PutVarint(&pPtr[p->nData], iRowid - p->iRowid); p->iRowid = iRowid; bNew = 1; @@ -445,7 +456,9 @@ static int fts5HashEntrySort( for(iSlot=0; iSlotnSlot; iSlot++){ Fts5HashEntry *pIter; for(pIter=pHash->aSlot[iSlot]; pIter; pIter=pIter->pHashNext){ - if( pTerm==0 || 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm) ){ + if( pTerm==0 + || (pIter->nKey+1>=nTerm && 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm)) + ){ Fts5HashEntry *pEntry = pIter; pEntry->pScanNext = 0; for(i=0; ap[i]; i++){ @@ -473,8 +486,9 @@ static int fts5HashEntrySort( */ int sqlite3Fts5HashQuery( Fts5Hash *pHash, /* Hash table to query */ + int nPre, const char *pTerm, int nTerm, /* Query term */ - const u8 **ppDoclist, /* OUT: Pointer to doclist for pTerm */ + void **ppOut, /* OUT: Pointer to new object */ int *pnDoclist /* OUT: Size of doclist in bytes */ ){ unsigned int iHash = fts5HashKey(pHash->nSlot, (const u8*)pTerm, nTerm); @@ -488,11 +502,20 @@ int sqlite3Fts5HashQuery( } if( p ){ - fts5HashAddPoslistSize(pHash, p); - *ppDoclist = (const u8*)&zKey[nTerm+1]; - *pnDoclist = p->nData - (sizeof(Fts5HashEntry) + nTerm + 1); + int nHashPre = sizeof(Fts5HashEntry) + nTerm + 1; + int nList = p->nData - nHashPre; + u8 *pRet = (u8*)(*ppOut = sqlite3_malloc64(nPre + nList + 10)); + if( pRet ){ + Fts5HashEntry *pFaux = (Fts5HashEntry*)&pRet[nPre-nHashPre]; + memcpy(&pRet[nPre], &((u8*)p)[nHashPre], nList); + nList += fts5HashAddPoslistSize(pHash, p, pFaux); + *pnDoclist = nList; + }else{ + *pnDoclist = 0; + return SQLITE_NOMEM; + } }else{ - *ppDoclist = 0; + *ppOut = 0; *pnDoclist = 0; } @@ -525,7 +548,7 @@ void sqlite3Fts5HashScanEntry( if( (p = pHash->pScan) ){ char *zKey = fts5EntryKey(p); int nTerm = (int)strlen(zKey); - fts5HashAddPoslistSize(pHash, p); + fts5HashAddPoslistSize(pHash, p, 0); *pzTerm = zKey; *ppDoclist = (const u8*)&zKey[nTerm+1]; *pnDoclist = p->nData - (sizeof(Fts5HashEntry) + nTerm + 1); diff --git a/ext/fts5/fts5_index.c b/ext/fts5/fts5_index.c index 5ce75bd1e1..2bdeab1868 100644 --- a/ext/fts5/fts5_index.c +++ b/ext/fts5/fts5_index.c @@ -2457,31 +2457,40 @@ static void fts5SegIterHashInit( int flags, /* Mask of FTS5INDEX_XXX flags */ Fts5SegIter *pIter /* Object to populate */ ){ - const u8 *pList = 0; int nList = 0; const u8 *z = 0; int n = 0; + Fts5Data *pLeaf = 0; assert( p->pHash ); assert( p->rc==SQLITE_OK ); if( pTerm==0 || (flags & FTS5INDEX_QUERY_SCAN) ){ + const u8 *pList = 0; + p->rc = sqlite3Fts5HashScanInit(p->pHash, (const char*)pTerm, nTerm); sqlite3Fts5HashScanEntry(p->pHash, (const char**)&z, &pList, &nList); n = (z ? (int)strlen((const char*)z) : 0); + if( pList ){ + pLeaf = fts5IdxMalloc(p, sizeof(Fts5Data)); + if( pLeaf ){ + pLeaf->p = (u8*)pList; + } + } }else{ - pIter->flags |= FTS5_SEGITER_ONETERM; - sqlite3Fts5HashQuery(p->pHash, (const char*)pTerm, nTerm, &pList, &nList); + p->rc = sqlite3Fts5HashQuery(p->pHash, sizeof(Fts5Data), + (const char*)pTerm, nTerm, (void**)&pLeaf, &nList + ); + if( pLeaf ){ + pLeaf->p = (u8*)&pLeaf[1]; + } z = pTerm; n = nTerm; + pIter->flags |= FTS5_SEGITER_ONETERM; } - if( pList ){ - Fts5Data *pLeaf; + if( pLeaf ){ sqlite3Fts5BufferSet(&p->rc, &pIter->term, n, z); - pLeaf = fts5IdxMalloc(p, sizeof(Fts5Data)); - if( pLeaf==0 ) return; - pLeaf->p = (u8*)pList; pLeaf->nn = pLeaf->szLeaf = nList; pIter->pLeaf = pLeaf; pIter->iLeafOffset = fts5GetVarint(pLeaf->p, (u64*)&pIter->iRowid); @@ -2634,8 +2643,8 @@ static int fts5MultiIterDoCompare(Fts5Iter *pIter, int iOut){ }else{ int res = fts5BufferCompare(&p1->term, &p2->term); if( res==0 ){ - assert( i2>i1 ); - assert( i2!=0 ); + assert_nc( i2>i1 ); + assert_nc( i2!=0 ); pRes->bTermEq = 1; if( p1->iRowid==p2->iRowid ){ p1->bDel = p2->bDel; @@ -3682,7 +3691,7 @@ static int fts5WriteDlidxGrow( if( aDlidx==0 ){ p->rc = SQLITE_NOMEM; }else{ - int nByte = sizeof(Fts5DlidxWriter) * (nLvl - pWriter->nDlidx); + size_t nByte = sizeof(Fts5DlidxWriter) * (nLvl - pWriter->nDlidx); memset(&aDlidx[pWriter->nDlidx], 0, nByte); pWriter->aDlidx = aDlidx; pWriter->nDlidx = nLvl; @@ -4169,13 +4178,14 @@ static void fts5TrimSegments(Fts5Index *p, Fts5Iter *pIter){ /* Set up the new page-index array */ fts5BufferAppendVarint(&p->rc, &buf, 4); if( pSeg->iLeafPgno==pSeg->iTermLeafPgno - && pSeg->iEndofDoclistszLeaf - ){ + && pSeg->iEndofDoclistszLeaf + && pSeg->iPgidxOff<=pData->nn + ){ int nDiff = pData->szLeaf - pSeg->iEndofDoclist; fts5BufferAppendVarint(&p->rc, &buf, buf.n - 1 - nDiff - 4); fts5BufferAppendBlob(&p->rc, &buf, pData->nn - pSeg->iPgidxOff, &pData->p[pSeg->iPgidxOff] - ); + ); } pSeg->pSeg->pgnoFirst = pSeg->iTermLeafPgno; diff --git a/ext/fts5/fts5_main.c b/ext/fts5/fts5_main.c index f20c01b039..06b8183778 100644 --- a/ext/fts5/fts5_main.c +++ b/ext/fts5/fts5_main.c @@ -633,7 +633,7 @@ static int fts5OpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr){ pCsr = (Fts5Cursor*)sqlite3_malloc64(nByte); if( pCsr ){ Fts5Global *pGlobal = pTab->pGlobal; - memset(pCsr, 0, nByte); + memset(pCsr, 0, (size_t)nByte); pCsr->aColumnSize = (int*)&pCsr[1]; pCsr->pNext = pGlobal->pCsr; pGlobal->pCsr = pCsr; @@ -914,7 +914,7 @@ static int fts5CursorFirstSorted( nByte = sizeof(Fts5Sorter) + sizeof(int) * (nPhrase-1); pSorter = (Fts5Sorter*)sqlite3_malloc64(nByte); if( pSorter==0 ) return SQLITE_NOMEM; - memset(pSorter, 0, nByte); + memset(pSorter, 0, (size_t)nByte); pSorter->nIdx = nPhrase; /* TODO: It would be better to have some system for reusing statement @@ -2468,14 +2468,14 @@ static int fts5CreateAux( int rc = sqlite3_overload_function(pGlobal->db, zName, -1); if( rc==SQLITE_OK ){ Fts5Auxiliary *pAux; - int nName; /* Size of zName in bytes, including \0 */ - int nByte; /* Bytes of space to allocate */ + sqlite3_int64 nName; /* Size of zName in bytes, including \0 */ + sqlite3_int64 nByte; /* Bytes of space to allocate */ - nName = (int)strlen(zName) + 1; + nName = strlen(zName) + 1; nByte = sizeof(Fts5Auxiliary) + nName; - pAux = (Fts5Auxiliary*)sqlite3_malloc(nByte); + pAux = (Fts5Auxiliary*)sqlite3_malloc64(nByte); if( pAux ){ - memset(pAux, 0, nByte); + memset(pAux, 0, (size_t)nByte); pAux->zFunc = (char*)&pAux[1]; memcpy(pAux->zFunc, zName, nName); pAux->pGlobal = pGlobal; @@ -2505,15 +2505,15 @@ static int fts5CreateTokenizer( ){ Fts5Global *pGlobal = (Fts5Global*)pApi; Fts5TokenizerModule *pNew; - int nName; /* Size of zName and its \0 terminator */ - int nByte; /* Bytes of space to allocate */ + sqlite3_int64 nName; /* Size of zName and its \0 terminator */ + sqlite3_int64 nByte; /* Bytes of space to allocate */ int rc = SQLITE_OK; - nName = (int)strlen(zName) + 1; + nName = strlen(zName) + 1; nByte = sizeof(Fts5TokenizerModule) + nName; - pNew = (Fts5TokenizerModule*)sqlite3_malloc(nByte); + pNew = (Fts5TokenizerModule*)sqlite3_malloc64(nByte); if( pNew ){ - memset(pNew, 0, nByte); + memset(pNew, 0, (size_t)nByte); pNew->zName = (char*)&pNew[1]; memcpy(pNew->zName, zName, nName); pNew->pUserData = pUserData; diff --git a/ext/fts5/fts5_storage.c b/ext/fts5/fts5_storage.c index c6dda28c54..611e6bc918 100644 --- a/ext/fts5/fts5_storage.c +++ b/ext/fts5/fts5_storage.c @@ -289,7 +289,7 @@ int sqlite3Fts5StorageOpen( *pp = p = (Fts5Storage*)sqlite3_malloc64(nByte); if( !p ) return SQLITE_NOMEM; - memset(p, 0, nByte); + memset(p, 0, (size_t)nByte); p->aTotalSize = (i64*)&p[1]; p->pConfig = pConfig; p->pIndex = pIndex; diff --git a/ext/fts5/fts5_tokenize.c b/ext/fts5/fts5_tokenize.c index 9fced72ba2..93edcee133 100644 --- a/ext/fts5/fts5_tokenize.c +++ b/ext/fts5/fts5_tokenize.c @@ -369,7 +369,7 @@ static int fts5UnicodeCreate( p->eRemoveDiacritic = FTS5_REMOVE_DIACRITICS_SIMPLE; p->nFold = 64; - p->aFold = sqlite3_malloc(p->nFold * sizeof(char)); + p->aFold = sqlite3_malloc64(p->nFold * sizeof(char)); if( p->aFold==0 ){ rc = SQLITE_NOMEM; } diff --git a/ext/fts5/fts5_unicode2.c b/ext/fts5/fts5_unicode2.c index d3981226d1..161e8d880f 100644 --- a/ext/fts5/fts5_unicode2.c +++ b/ext/fts5/fts5_unicode2.c @@ -769,7 +769,7 @@ void sqlite3Fts5UnicodeAscii(u8 *aArray, u8 *aAscii){ int bToken = aArray[ aFts5UnicodeData[iTbl] & 0x1F ]; int n = (aFts5UnicodeData[iTbl] >> 5) + i; for(; i<128 && i... +| 2416: 17 01 05 05 34 74 61 62 6c 03 02 03 01 04 77 68 ....4tabl.....wh +| 2432: 65 72 03 02 06 09 1b 8c 80 80 80 80 0f 03 00 3c er.............< +| 2448: 00 00 00 16 05 34 66 74 73 34 03 02 02 01 04 6e .....4fts4.....n +| 2464: 75 6d 62 03 06 01 04 09 1b 8c 80 80 80 80 0e 03 umb............. +| 2480: 00 3c 00 00 00 16 04 33 74 68 65 03 06 01 01 04 .<.....3the..... +| 2496: 01 03 77 68 65 03 02 04 04 0a 1b 8c 80 80 80 80 ..whe........... +| 2512: 0d 03 00 3c 00 00 00 16 04 33 6e 75 6d 03 06 01 ...<.....3num... +| 2528: 01 05 01 03 74 61 62 03 02 03 04 0a 19 8c 80 80 ....tab......... +| 2544: 80 80 0c 03 00 38 00 00 00 14 03 32 77 68 03 02 .....8.....2wh.. +| 2560: 04 00 04 33 66 74 73 03 02 02 04 07 18 8c 80 80 ...3fts......... +| 2576: 80 80 0b 03 00 36 00 00 00 13 03 32 74 61 03 02 .....6.....2ta.. +| 2592: 03 02 01 68 03 06 01 01 04 04 07 1b 8c 80 80 80 ...h............ +| 2608: 80 09 03 00 3c 00 00 00 16 03 32 6e 75 03 06 01 ....<.....2nu... +| 2624: 01 05 01 02 6f 66 03 3b 01 01 06 04 09 19 8c 80 ....of.;........ +| 2640: 80 80 80 09 03 00 38 00 00 00 14 03 32 66 74 03 ......8.....2ft. +| 2656: 02 02 01 02 69 73 03 06 01 01 03 04 07 18 8c 80 ....is.......... +| 2672: 80 80 80 08 03 00 36 00 00 00 13 02 31 74 03 08 ......6.....1t.. +| 2688: 03 01 01 04 01 01 77 03 02 04 04 09 1a 8c 80 80 ......w......... +| 2704: 80 80 07 03 00 3a ff 00 00 15 02 31 6e 03 08 01 .....:.....1n... +| 2720: 01 02 05 01 01 6f 03 06 01 01 06 04 09 18 8c 80 .....o.......... +| 2736: 80 80 80 06 03 00 36 00 00 00 13 04 02 31 66 03 ......6......1f. +| 2752: 02 02 01 01 69 03 06 01 01 03 05 06 1c 8c 80 80 ....i........... +| 2768: 80 80 05 03 00 3e 00 00 00 17 04 30 74 68 65 03 .....>.....0the. +| 2784: 06 00 f1 04 01 05 77 68 65 72 65 03 02 04 0a 15 ......where..... +| 2800: 8c 80 80 80 80 04 03 00 30 00 00 00 11 01 01 06 ........0....... +| 2816: 06 30 74 61 62 6c 65 03 02 03 07 1c 8c 80 80 80 .0table......... +| 2832: 80 03 03 00 3e 00 00 00 17 07 30 6e 75 6d 62 65 ....>.....0numbe +| 2848: 72 03 06 01 01 05 01 02 6f 66 03 06 04 0d 13 8c r.......of...... +| 2864: 80 80 80 80 02 03 00 2c 00 00 00 0f 01 01 03 02 .......,........ +| 2880: 30 6e 03 06 01 01 02 07 1b 8c 80 80 80 80 01 03 0n.............. +| 2896: 00 3c 00 00 00 16 08 30 66 74 73 34 61 75 78 03 .<.....0fts4aux. +| 2912: 02 02 01 02 69 73 03 06 04 0c 00 00 00 14 2a 00 ....is........*. +| 2928: 00 00 01 01 02 24 00 02 01 01 12 02 01 12 08 88 .....$.......... +| 2944: 80 80 80 80 12 03 00 16 00 00 00 05 02 1c 88 80 ................ +| 2960: 80 80 80 11 03 00 3e 00 00 00 17 05 34 72 6f 77 ......>.....4row +| 2976: 73 02 06 01 01 05 01 04 74 68 65 72 02 02 04 0b s.......ther.... +| 2992: 15 88 80 80 80 80 10 03 00 30 00 00 00 11 02 01 .........0...... +| 3008: 01 07 05 34 62 65 74 77 02 02 04 08 1b 88 80 80 ...4betw........ +| 3024: 80 80 0f 03 00 3c 00 00 00 16 04 04 33 72 6f 77 .....<......3row +| 3040: 02 06 01 01 05 01 03 74 68 65 02 08 05 0a 1b 88 .......the...... +| 3056: 80 80 80 80 0e 03 00 3c 00 00 00 16 01 01 02 04 .......<........ +| 3072: 33 61 72 65 02 02 03 01 03 62 65 74 02 02 07 08 3are.....bet.... +| 3088: 1b 88 80 80 80 80 0d 03 00 3c 00 00 00 16 03 32 .........<.....2 +| 3104: 74 68 02 08 02 01 01 07 00 04 33 61 6e 64 02 06 th........3and.. +| 3120: 04 0a 1b 88 80 80 80 80 0c 03 00 3c 00 00 00 16 ...........<.... +| 3136: 03 32 69 6e 02 06 01 01 06 01 02 72 6f 02 06 01 .2in.......ro... +| 3152: 01 05 04 09 18 88 80 80 80 80 0b 03 00 36 00 00 .............6.. +| 3168: 00 13 02 03 32 61 72 02 02 03 01 02 62 65 02 02 ....2ar.....be.. +| 3184: 04 05 07 1b 88 80 80 80 80 0a 03 00 3c 00 00 00 ............<... +| 3200: 16 02 31 74 02 08 02 01 01 07 00 03 32 61 6e 02 ..1t........2an. +| 3216: 06 01 01 04 09 19 88 80 80 80 80 09 03 00 38 00 ..............8. +| 3232: 00 00 14 02 31 6e 02 06 01 01 03 01 01 72 02 06 ....1n.......r.. +| 3248: 01 01 05 04 08 17 88 80 80 80 80 08 03 00 34 00 ..............4. +| 3264: 00 00 12 02 31 62 02 02 04 01 01 69 02 06 01 01 ....1b.....i.... +| 3280: 06 04 06 19 88 80 80 80 80 07 03 00 38 00 00 00 ............8... +| 3296: 14 04 02 31 32 02 02 05 01 01 61 02 08 03 01 01 ...12.....a..... +| 3312: 02 05 06 1b 88 80 80 80 80 06 03 00 3c 00 00 00 ............<... +| 3328: 16 06 30 74 68 65 72 65 02 02 02 00 02 31 31 02 ..0there.....11. +| 3344: 06 01 01 04 0a 15 88 80 80 80 80 05 03 00 30 00 ..............0. +| 3360: 00 00 11 01 01 05 04 30 74 68 65 02 06 01 01 07 .......0the..... +| 3376: 07 1c 88 80 80 80 80 04 03 00 3e 00 00 00 17 01 ..........>..... +| 3392: 01 06 02 30 6e 02 06 01 01 03 01 04 72 6f 77 73 ...0n.......rows +| 3408: 02 06 07 08 1b 88 80 80 80 80 03 03 00 3c 00 00 .............<.. +| 3424: 00 16 08 30 62 65 74 77 65 65 6e 02 02 04 01 02 ...0between..... +| 3440: 69 6e 02 06 04 0c 1a 88 80 80 80 80 02 03 00 3a in.............: +| 3456: 00 00 00 15 04 30 61 6e 64 02 06 01 01 02 02 02 .....0and....... +| 3472: 72 65 02 02 03 04 0a 17 88 80 80 80 80 01 03 00 re.............. +| 3488: 34 00 00 00 12 02 30 31 02 06 01 01 04 01 01 32 4.....01.......2 +| 3504: 02 02 05 04 08 08 84 80 80 80 81 12 03 00 16 00 ................ +| 3520: 00 00 05 04 1b 84 61 80 80 80 11 03 00 3c 00 00 ......a......<.. +| 3536: 00 16 05 34 74 61 62 6c 01 06 01 01 05 02 03 65 ...4tabl.......e +| 3552: 72 6d 01 02 04 0b 1b 84 80 80 80 80 10 03 00 3c rm.............< +| 3568: 00 00 00 16 05 34 65 61 63 68 01 02 03 01 04 70 .....4each.....p +| 3584: 72 65 73 01 02 05 04 09 1a 84 80 80 80 80 0f 03 res............. +| 3600: 00 3a 00 00 00 15 04 33 74 65 72 01 02 04 02 02 .:.....3ter..... +| 3616: 68 65 01 06 01 01 03 04 08 1b 84 80 80 80 80 0e he.............. +| 3632: 03 00 3c 00 00 00 16 04 33 70 72 65 01 02 05 01 ..<.....3pre.... +| 3648: 03 74 61 62 01 06 01 01 05 14 08 1a 84 80 80 80 .tab............ +| 3664: 80 0d 03 00 3a 00 00 00 15 04 33 66 6f 72 01 02 ....:.....3for.. +| 3680: 02 02 02 74 73 01 06 01 01 04 04 08 1b 84 80 80 ...ts........... +| 3696: 80 80 0c 03 00 3c 00 00 00 16 03 32 74 68 01 06 .....<.....2th.. +| 3712: 01 01 03 00 04 33 65 61 63 01 02 03 04 09 18 84 .....3eac....... +| 3728: 80 80 80 80 0b 03 00 36 00 00 00 13 03 32 74 71 .......6.....2tq +| 3744: 01 06 01 01 05 02 01 65 01 02 04 04 09 19 84 80 .......e........ +| 3760: 80 80 80 0a 03 00 38 00 00 00 14 03 32 69 6e 01 ......8.....2in. +| 3776: 06 01 01 02 01 02 70 72 01 02 05 0b 89 18 84 80 ......pr........ +| 3792: 80 80 80 09 03 00 36 00 00 00 13 03 32 66 6f 01 ......6.....2fo. +| 3808: 02 02 02 01 74 01 06 01 01 04 04 07 1b 84 80 80 ....t........... +| 3824: 80 80 08 03 00 3c 00 00 00 16 02 31 74 01 0a 04 .....<.....1t... +| 3840: 01 01 03 04 00 03 32 65 61 01 02 03 04 0a 17 84 ......2ea....... +| 3856: 80 80 80 80 07 03 00 34 00 00 00 12 02 31 69 01 .......4.....1i. +| 3872: 06 01 01 02 01 01 70 01 02 05 04 08 18 84 80 80 ......p......... +| 3888: 80 80 06 03 00 36 00 00 00 13 02 31 65 01 02 03 .....6.....1e... +| 3904: 01 01 66 01 08 02 01 01 04 04 06 1b 84 80 80 80 ..f............. +| 3920: 80 05 03 00 3c 00 00 00 16 05 30 74 65 72 6d 01 ....<.....0term. +| 3936: 02 04 02 02 68 65 01 06 01 01 03 04 09 14 84 80 ....he.......... +| 3952: 80 80 80 04 03 00 2e 00 00 00 10 06 30 74 61 62 ............0tab +| 3968: 6c 65 01 06 01 01 05 04 15 84 80 80 80 80 03 03 le.............. +| 3984: 00 30 00 00 00 11 02 08 30 70 72 65 73 65 6e 74 .0......0present +| 4000: 01 02 05 05 1b 84 80 80 80 80 02 03 00 3c 00 00 .............<.. +| 4016: 00 16 04 30 66 74 73 01 06 01 01 04 01 02 69 6e ...0fts.......in +| 4032: 01 06 01 01 04 0a 1a 84 80 80 80 80 01 03 00 3a ...............: +| 4048: 00 00 00 15 05 30 65 61 63 f4 01 02 03 01 03 66 .....0eac......f +| 4064: 6f 72 01 02 02 04 09 06 01 03 00 12 03 0b 0f 00 or.............. +| 4080: 00 08 8c 80 80 80 80 11 03 00 16 00 00 00 05 04 ................ +| page 3 offset 8192 +| 0: 0a 00 00 00 32 0e 4f 00 0f fa 0f f1 0f e9 0f e1 ....2.O......... +| 16: 0f d8 0f d1 0f c9 0f c1 0f b9 0f b1 0f a9 0f a0 ................ +| 32: 0f 98 0f 90 0f 87 0f 80 0f 78 0f 71 0f 68 0f 5f .........x.q.h._ +| 48: 0f 56 0f 4d 0f 41 0f 38 0f 2f 0f 26 0f 1d 0f 13 .V.M.A.8./.&.... +| 64: 0f 0a 0f 01 0e f7 0e ee 0e e6 0e dd 0e d6 0e cd ................ +| 80: 0e c3 0e ba 0e b0 0e a8 0e 9f 0e 96 0e 8e 0e 85 ................ +| 96: 0e 7c 0e 73 0e 6a 0e 60 0e 58 0e 4f 00 00 00 00 .|.s.j.`.X.O.... +| 3648: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 ................ +| 3664: 04 01 10 01 03 34 74 20 07 04 01 0e 01 03 34 1e .....4t ......4. +| 3680: 09 04 01 12 01 03 33 74 68 1c 08 04 01 10 01 03 ......3th....... +| 3696: 33 6e 1a 08 04 01 10 01 03 32 77 18 08 04 01 10 3n.......2w..... +| 3712: 01 03 32 74 16 08 04 01 10 01 03 32 6e 14 07 04 ..2t.......2n... +| 3728: 01 0e 01 03 32 12 08 04 01 10 01 03 31 74 10 08 ....2.......1t.. +| 3744: 04 01 10 01 03 31 6e 0e 07 04 01 0e 01 03 31 0c .....1n.......1. +| 3760: 09 04 01 12 01 03 30 74 68 0a 08 04 01 10 01 03 ......0th....... +| 3776: 30 74 08 09 04 01 12 01 03 30 6e 75 06 08 04 01 0t.......0nu.... +| 3792: 10 01 03 30 6e 04 06 04 01 0c 01 03 02 08 04 01 ...0n........... +| 3808: 10 01 02 34 72 22 07 04 01 0e 01 02 34 20 08 04 ...4r.......4 .. +| 3824: 01 10 01 02 33 72 1e 09 04 01 12 01 02 33 61 72 ....3r.......3ar +| 3840: 1c 08 04 01 10 01 02 32 74 1a 08 04 01 10 b3 02 .......2t....... +| 3856: 32 69 18 09 04 01 12 01 02 32 61 72 16 08 04 01 2i.......2ar.... +| 3872: 10 01 02 31 74 14 08 04 01 10 01 02 31 6e 12 08 ...1t.......1n.. +| 3888: 04 01 10 01 02 31 62 10 08 04 01 10 01 02 31 32 .....1b.......12 +| 3904: 0e 0b 04 01 16 01 02 30 74 68 65 72 0c 08 04 01 .......0ther.... +| 3920: 10 01 02 30 74 0a 08 04 01 10 01 02 30 6e 08 08 ...0t.......0n.. +| 3936: 04 01 10 01 02 30 62 06 08 04 01 10 01 02 30 61 .....0b.......0a +| 3952: 05 06 04 01 0c 01 02 02 07 04 09 10 01 34 74 22 .............4t. +| 3968: 06 04 09 0e 01 34 20 08 04 09 12 01 33 74 65 1e .....4 .....3te. +| 3984: 07 04 09 10 01 33 70 1c 07 04 09 10 01 33 66 1a .....3p......3f. +| 4000: 08 04 09 12 01 32 74 68 18 07 04 09 10 01 32 2d .....2th......2- +| 4016: 16 07 04 09 10 01 32 69 14 07 04 09 10 01 32 66 ......2i......2f +| 4032: 12 07 04 09 10 01 31 74 10 07 04 09 10 01 31 69 ......1t......1i +| 4048: 0e 06 04 09 0e 01 31 0c 08 04 09 12 01 30 74 65 ......1......0te +| 4064: 0a 07 04 09 10 01 30 74 08 07 04 09 10 01 30 70 ......0t......0p +| 4080: 06 08 04 09 12 01 30 66 74 04 05 04 09 0c 01 02 ......0ft....... +| page 4 offset 12288 +| 0: 0d 00 00 00 03 0f eb 00 0f f9 0f f2 0f eb 00 00 ................ +| 4064: 00 00 00 00 00 00 00 00 00 00 00 05 03 03 00 10 ................ +| 4080: 03 05 05 02 03 00 10 04 06 05 01 03 00 10 04 03 ................ +| page 5 offset 16384 +| 0: 0a 00 00 00 02 0f eb 00 0f eb 0f f4 00 00 00 00 ................ +| 4064: 00 00 00 00 00 00 00 00 00 00 00 08 03 15 01 70 ...............p +| 4080: 67 73 7a 18 0b 03 1b 01 76 65 72 73 69 6f 6e 04 gsz.....version. +| page 6 offset 20480 +| 0: 0d 00 00 00 03 0f f2 00 0f fc 0f f7 0f f2 00 00 ................ +| 4080: 00 00 03 03 02 01 03 03 02 02 01 02 02 01 02 09 ................ +| end crash-2acc487d09f033.db +}]} {} + +do_test 56.1 { + set res [catchsql { + INSERT INTO t1(b) VALUES(randomblob(250)); + INSERT INTO t1(b) VALUES(randomblob(250)); + }] + + # For some permutations - those that use the page-cache - this test + # may return SQLITE_CONSTRAINT instead of SQLITE_CORRUPT. This is because + # the corrupt db in the test over-reads the page buffer slightly, with + # different results depending on whether or not the page-cache is in use. + if {$res=="1 {constraint failed}"} { + set res "1 {database disk image is malformed}" + } + set res +} {1 {database disk image is malformed}} + +#------------------------------------------------------------------------- +reset_db +do_test 57.0 { + sqlite3 db {} + db deserialize [decode_hexdb { +| size 28672 pagesize 4096 filename x.db +| page 1 offset 0 +| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. +| 16: 10 00 01 01 00 40 20 20 00 00 00 01 00 00 00 07 .....@ ........ +| 32: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................ +| 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ................ +| 96: 00 2e 34 20 0d 00 00 00 07 0d d2 00 0f c4 0f 6d ..4 ...........m +| 112: 0f 02 0e ab 0e 4e 0d f6 0d d2 00 00 00 00 00 00 .....N.......... +| 3536: 00 00 22 07 06 17 11 11 01 31 74 61 62 6c 65 74 .........1tablet +| 3552: 32 74 32 07 43 52 45 41 54 45 20 54 41 42 4c 45 2t2.CREATE TABLE +| 3568: 20 74 32 28 78 29 56 06 06 17 1f 1f 01 7d 74 61 t2(x)V.......ta +| 3584: 61 6b 65 74 31 5f 63 6f 6e 66 69 67 74 31 5f 63 aket1_configt1_c +| 3600: 6f 7e 66 69 67 06 43 52 45 41 54 45 20 54 41 42 o~fig.CREATE TAB +| 3616: 4c 45 20 27 74 31 5f 63 6f 6e 66 69 67 27 28 6b LE 't1_config'(k +| 3632: 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 76 29 PRIMARY KEY, v) +| 3648: 20 57 49 54 48 4f 55 54 20 52 4f 57 49 44 5b 05 WITHOUT ROWID[. +| 3664: 07 17 21 21 01 81 01 74 61 62 6c 65 74 31 5f 64 ..!!...tablet1_d +| 3680: 6f 63 73 69 7a 65 74 31 5f 64 6f 63 73 69 7a 65 ocsizet1_docsize +| 3696: 05 43 52 45 41 54 45 20 54 41 42 4c 45 20 27 74 .CREATE TABLE 't +| 3712: 31 5f 64 6f 63 73 69 7a 65 27 28 69 64 20 49 4e 1_docsize'(id IN +| 3728: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 TEGER PRIMARY KE +| 3744: 59 2c 20 73 7a 20 42 4c 4f 42 29 55 04 06 17 21 Y, sz BLOB)U...! +| 3760: 21 01 77 74 61 62 6c 65 74 31 5f 63 6f 6e 74 1d !.wtablet1_cont. +| 3776: 6e 74 74 31 5f 63 6f 6e 74 65 6e 74 04 43 52 45 ntt1_content.CRE +| 3792: 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 63 6f ATE TABLE 't1_co +| 3808: 6e 74 65 6e 74 27 28 69 64 20 49 4e 54 45 47 45 ntent'(id INTEGE +| 3824: 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 63 R PRIMARY KEY, c +| 3840: 30 29 69 03 07 17 19 19 01 81 2d 74 61 62 6c 65 0)i.......-table +| 3856: 74 31 5f 69 64 78 74 31 5f 59 64 78 03 43 52 45 t1_idxt1_Ydx.CRE +| 3872: 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 69 64 ATE TABLE 't1_id +| 3888: 78 27 28 73 65 67 69 64 2c 20 74 65 72 6d 2c 20 x'(segid, term, +| 3904: 70 67 6e 6f 2c 20 50 52 49 4d 41 52 59 20 4b 45 pgno, PRIMARY KE +| 3920: 59 28 73 65 67 69 64 2c 20 74 65 72 6d 29 29 20 Y(segid, term)) +| 3936: 57 49 54 48 4f 55 54 20 52 4f 57 49 44 55 02 07 WITHOUT ROWIDU.. +| 3952: 17 1b 1b 01 81 01 74 61 62 6c 65 74 31 5f 64 61 ......tablet1_da +| 3968: 74 61 74 31 5f 64 61 64 61 02 43 52 45 41 54 45 tat1_dada.CREATE +| 3984: 20 54 41 42 4c 45 20 27 74 31 5f 64 61 74 61 27 TABLE 't1_data' +| 4000: 28 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d (id INTEGER PRIM +| 4016: 41 52 59 20 4b 45 59 2c 20 62 6c 6f 63 6b 20 42 ARY KEY, block B +| 4032: 4c 4f 42 29 3a 01 06 17 11 11 08 63 74 61 62 6c LOB):......ctabl +| 4048: 65 74 31 74 31 43 52 45 41 54 45 20 56 49 52 54 et1t1CREATE VIRT +| 4064: 55 41 4c 20 54 41 42 4c 45 20 74 31 20 55 53 49 UAL TABLE t1 USI +| 4080: 4e 47 20 66 74 73 35 28 63 6f 6e 74 65 6e 74 29 NG fts5(content) +| page 2 offset 4096 +| 0: 0d 0e b4 00 06 0e 35 00 0f e8 0e 35 0f bd 0f 4e ......5....5...N +| 16: 0e cb 0e 4f 00 00 00 00 00 00 00 00 00 00 00 00 ...O............ +| 3632: 00 00 00 00 00 18 0a 03 00 36 00 00 00 00 01 04 .........6...... +| 3648: 04 00 04 01 01 01 02 01 01 03 01 01 04 01 01 5e ...............^ +| 3664: 90 80 80 80 80 01 04 00 81 40 00 00 00 51 06 30 .........@...Q.0 +| 3680: 61 62 61 63 6b 01 01 04 04 6e 64 6f 6e 01 01 02 aback....ndon... +| 3696: 04 63 69 76 65 01 01 02 04 6c 70 68 61 01 01 02 .cive....lpha... +| 3712: 03 74 6f 6d 01 01 01 06 62 61 63 6b 75 70 01 01 .tom....backup.. +| 3728: 02 05 6f 6f 6d 65 72 01 01 01 06 63 68 61 6e 6e ..oomer....chann +| 3744: 65 01 01 01 04 74 65 73 74 01 01 04 09 08 08 08 e....test....... +| 3760: 07 0a 09 0a 0f 3a 00 17 30 00 00 00 00 01 03 03 .....:..0....... +| 3776: 00 03 01 01 01 02 01 01 03 01 01 68 8c 80 80 80 ...........h.... +| 3792: 80 01 04 00 81 54 00 00 00 5b 06 30 61 62 61 63 .....T...[.0abac +| 3808: 6b 02 02 07 04 04 6e 64 6f 6e 02 02 05 02 04 63 k.....ndon.....c +| 3824: 69 76 65 02 02 0b 02 04 6c 70 68 61 02 04 02 0a ive.....lpha.... +| 3840: 02 03 74 6f 6d 02 02 09 01 06 62 61 63 6b 75 70 ..tom.....backup +| 3856: 02 02 04 02 05 6f 6f 6d 65 72 02 02 08 01 06 63 .....oomer.....c +| 3872: 68 61 6e 6e 65 02 02 03 01 04 74 65 73 74 02 02 hanne.....test.. +| 3888: 06 04 0a 09 09 0a 08 0b 0a 0b 0f ef 00 14 2a 00 ..............*. +| 3904: 00 00 00 01 02 02 00 02 01 01 01 02 01 01 68 88 ..............h. +| 3920: 80 80 80 80 01 04 00 81 54 00 00 00 5b 06 30 61 ........T...[.0a +| 3936: 62 61 63 6b 01 02 07 04 04 6e 64 6f 6e 01 02 05 back.....ndon... +| 3952: 02 04 63 69 76 65 01 02 0b 02 04 6c 70 68 61 01 ..cive.....lpha. +| 3968: 04 02 0a 02 03 74 6f 6d 01 02 09 01 06 62 61 63 .....tom.....bac +| 3984: 6b 75 70 01 02 04 02 05 6f 6f 6d 65 72 01 02 08 kup.....oomer... +| 4000: 01 06 63 68 61 6e 6e 65 01 02 03 01 04 74 65 73 ..channe.....tes +| 4016: 74 01 02 06 04 0a 09 09 0a 08 0b 0a 0b 24 84 80 t............$.. +| 4032: 80 80 80 01 03 00 4e 00 00 00 1e 06 30 61 62 61 ......N.....0aba +| 4048: 63 6b 01 02 02 05 42 66 74 02 02 02 04 04 6e 64 ck....Bft.....nd +| 4064: 6f 6e 03 02 02 04 0a 07 05 01 03 00 10 04 0d 00 on.............. +| 4080: 00 00 11 24 00 00 00 00 01 01 01 00 01 01 01 01 ...$............ +| page 3 offset 8192 +| 0: 0a 00 00 00 04 0f e5 00 00 00 0f f3 0f ec 0f e5 ................ +| 4064: 00 00 00 00 00 06 04 01 0c 01 04 02 06 04 01 0c ................ +| 4080: 01 03 02 06 04 01 0c 01 02 02 05 04 09 0d 01 02 ................ +| page 4 offset 12288 +| 0: 0d 0e bc 00 04 0e 78 00 00 00 00 00 00 00 0e 78 ......x........x +| 16: 0e 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .x.............. +| 3696: 00 00 00 00 00 00 00 00 42 02 04 00 81 09 61 6c ........B.....al +| 3712: 70 68 61 20 63 68 61 6e 6e 65 20 62 61 63 6b 75 pha channe backu +| 3728: 70 20 61 62 61 6e 64 6f 6e 20 74 65 73 74 20 61 p abandon test a +| 3744: 62 61 63 6b 20 62 6f 6f 6d 65 72 20 61 74 6f 6d back boomer atom +| 3760: 20 61 6c 70 68 61 20 61 63 69 76 65 00 00 00 44 alpha acive...D +| 3776: 81 09 61 6c 70 68 61 20 63 68 61 6e 6e 65 20 62 ..alpha channe b +| 3792: 61 63 6b 75 70 20 61 62 61 6e 64 6f 6e 20 74 65 ackup abandon te +| 3808: 73 74 20 61 62 61 63 6b 20 62 6f 6f 6d 65 72 20 st aback boomer +| 3824: 61 74 6f 6d 20 61 6c 70 68 61 20 61 63 69 76 65 atom alpha acive +| 4064: 0a 03 03 00 1b 61 4e 61 6e 64 6f 6e 08 02 03 00 .....aNandon.... +| 4080: 17 61 62 61 66 74 08 01 03 00 17 61 62 71 63 6b .abaft.....abqck +| page 5 offset 16384 +| 0: 0d 0f e8 00 04 0f e2 00 00 00 00 00 00 00 0f e2 ................ +| 16: 0f e2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +| 4064: 00 00 04 02 03 00 0e 0a 00 00 00 06 0e 0a 04 03 ................ +| 4080: 03 00 0e 01 04 02 03 00 0e 01 04 01 03 10 0e 01 ................ +| page 6 offset 20480 +| 0: 0a 00 00 00 01 0f f4 00 0f f4 00 00 00 00 00 00 ................ +| 4080: 00 00 00 00 0b 03 1b 01 76 65 72 73 69 6f 6e 04 ........version. +| page 7 offset 24576 +| 0: 0d 00 00 00 03 0f d6 00 0f f4 00 00 00 00 00 00 ................ +| 4048: 00 00 00 00 00 00 09 03 02 1b 72 65 62 75 69 6c ..........rebuil +| 4064: 64 11 02 02 2b 69 6e 74 65 67 72 69 74 79 2d 63 d...+integrity-c +| 4080: 68 65 63 6b 0a 01 02 1d 6f 70 74 69 6d 69 7a 65 heck....optimize +| end x.db +}]} {} + +do_catchsql_test 57.1 { + INSERT INTO t1(t1) VALUES('optimize') +} {1 {database disk image is malformed}} + + sqlite3_fts5_may_be_corrupt 0 finish_test diff --git a/ext/misc/amatch.c b/ext/misc/amatch.c index 7d96ed500a..cbc068bafb 100644 --- a/ext/misc/amatch.c +++ b/ext/misc/amatch.c @@ -747,7 +747,7 @@ static char *amatchDequote(const char *zIn){ char q = zIn[0]; /* Quote character (if any ) */ if( q!='[' && q!= '\'' && q!='"' && q!='`' ){ - memcpy(zOut, zIn, nIn+1); + memcpy(zOut, zIn, (size_t)(nIn+1)); }else{ int iOut = 0; /* Index of next byte to write to output */ int iIn; /* Index of next byte to read from input */ diff --git a/ext/misc/blobio.c b/ext/misc/blobio.c new file mode 100644 index 0000000000..65ca467e3a --- /dev/null +++ b/ext/misc/blobio.c @@ -0,0 +1,152 @@ +/* +** 2019-03-30 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** An SQL function that uses the incremental BLOB I/O mechanism of SQLite +** to read or write part of a blob. This is intended for debugging use +** in the CLI. +** +** readblob(SCHEMA,TABLE,COLUMN,ROWID,OFFSET,N) +** +** Returns N bytes of the blob starting at OFFSET. +** +** writeblob(SCHEMA,TABLE,COLUMN,ROWID,OFFSET,NEWDATA) +** +** NEWDATA must be a blob. The content of NEWDATA overwrites the +** existing BLOB data at SCHEMA.TABLE.COLUMN for row ROWID beginning +** at OFFSET bytes into the blob. +*/ +#include "sqlite3ext.h" +SQLITE_EXTENSION_INIT1 +#include +#include + +static void readblobFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_blob *pBlob = 0; + const char *zSchema; + const char *zTable; + const char *zColumn; + sqlite3_int64 iRowid; + int iOfst; + unsigned char *aData; + int nData; + sqlite3 *db; + int rc; + + zSchema = (const char*)sqlite3_value_text(argv[0]); + zTable = (const char*)sqlite3_value_text(argv[1]); + if( zTable==0 ){ + sqlite3_result_error(context, "bad table name", -1); + return; + } + zColumn = (const char*)sqlite3_value_text(argv[2]); + if( zTable==0 ){ + sqlite3_result_error(context, "bad column name", -1); + return; + } + iRowid = sqlite3_value_int64(argv[3]); + iOfst = sqlite3_value_int(argv[4]); + nData = sqlite3_value_int(argv[5]); + if( nData<=0 ) return; + aData = sqlite3_malloc64( nData+1 ); + if( aData==0 ){ + sqlite3_result_error_nomem(context); + return; + } + db = sqlite3_context_db_handle(context); + rc = sqlite3_blob_open(db, zSchema, zTable, zColumn, iRowid, 0, &pBlob); + if( rc ){ + sqlite3_free(aData); + sqlite3_result_error(context, "cannot open BLOB pointer", -1); + return; + } + rc = sqlite3_blob_read(pBlob, aData, nData, iOfst); + sqlite3_blob_close(pBlob); + if( rc ){ + sqlite3_free(aData); + sqlite3_result_error(context, "BLOB write failed", -1); + }else{ + sqlite3_result_blob(context, aData, nData, sqlite3_free); + } +} + +static void writeblobFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_blob *pBlob = 0; + const char *zSchema; + const char *zTable; + const char *zColumn; + sqlite3_int64 iRowid; + int iOfst; + unsigned char *aData; + int nData; + sqlite3 *db; + int rc; + + zSchema = (const char*)sqlite3_value_text(argv[0]); + zTable = (const char*)sqlite3_value_text(argv[1]); + if( zTable==0 ){ + sqlite3_result_error(context, "bad table name", -1); + return; + } + zColumn = (const char*)sqlite3_value_text(argv[2]); + if( zTable==0 ){ + sqlite3_result_error(context, "bad column name", -1); + return; + } + iRowid = sqlite3_value_int64(argv[3]); + iOfst = sqlite3_value_int(argv[4]); + if( sqlite3_value_type(argv[5])!=SQLITE_BLOB ){ + sqlite3_result_error(context, "6th argument must be a BLOB", -1); + return; + } + nData = sqlite3_value_bytes(argv[5]); + aData = (unsigned char *)sqlite3_value_blob(argv[5]); + db = sqlite3_context_db_handle(context); + rc = sqlite3_blob_open(db, zSchema, zTable, zColumn, iRowid, 1, &pBlob); + if( rc ){ + sqlite3_result_error(context, "cannot open BLOB pointer", -1); + return; + } + rc = sqlite3_blob_write(pBlob, aData, nData, iOfst); + sqlite3_blob_close(pBlob); + if( rc ){ + sqlite3_result_error(context, "BLOB write failed", -1); + } +} + + +#ifdef _WIN32 +__declspec(dllexport) +#endif +int sqlite3_blobio_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + int rc = SQLITE_OK; + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + rc = sqlite3_create_function(db, "readblob", 6, SQLITE_UTF8, 0, + readblobFunc, 0, 0); + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function(db, "writeblob", 6, SQLITE_UTF8, 0, + writeblobFunc, 0, 0); + } + return rc; +} diff --git a/ext/misc/closure.c b/ext/misc/closure.c index 2f83198a76..db9b2b7394 100644 --- a/ext/misc/closure.c +++ b/ext/misc/closure.c @@ -431,7 +431,7 @@ static char *closureDequote(const char *zIn){ char q = zIn[0]; /* Quote character (if any ) */ if( q!='[' && q!= '\'' && q!='"' && q!='`' ){ - memcpy(zOut, zIn, nIn+1); + memcpy(zOut, zIn, (size_t)(nIn+1)); }else{ int iOut = 0; /* Index of next byte to write to output */ int iIn; /* Index of next byte to read from input */ diff --git a/ext/misc/fileio.c b/ext/misc/fileio.c index b15e0fda1b..497bf47ba1 100644 --- a/ext/misc/fileio.c +++ b/ext/misc/fileio.c @@ -152,13 +152,13 @@ static void readFileContents(sqlite3_context *ctx, const char *zName){ fclose(in); return; } - pBuf = sqlite3_malloc64( nIn ); + pBuf = sqlite3_malloc64( nIn ? nIn : 1 ); if( pBuf==0 ){ sqlite3_result_error_nomem(ctx); fclose(in); return; } - if( 1==fread(pBuf, nIn, 1, in) ){ + if( nIn==(sqlite3_int64)fread(pBuf, 1, (size_t)nIn, in) ){ sqlite3_result_blob64(ctx, pBuf, nIn, sqlite3_free); }else{ sqlite3_result_error_code(ctx, SQLITE_IOERR); @@ -293,15 +293,15 @@ static int fileLinkStat( ** Argument zFile is the name of a file that will be created and/or written ** by SQL function writefile(). This function ensures that the directory ** zFile will be written to exists, creating it if required. The permissions -** for any path components created by this function are set to (mode&0777). +** for any path components created by this function are set in accordance +** with the current umask. ** ** If an OOM condition is encountered, SQLITE_NOMEM is returned. Otherwise, ** SQLITE_OK is returned if the directory is successfully created, or ** SQLITE_ERROR otherwise. */ static int makeDirectory( - const char *zFile, - mode_t mode + const char *zFile ){ char *zCopy = sqlite3_mprintf("%s", zFile); int rc = SQLITE_OK; @@ -322,7 +322,7 @@ static int makeDirectory( rc2 = fileStat(zCopy, &sStat); if( rc2!=0 ){ - if( mkdir(zCopy, mode & 0777) ) rc = SQLITE_ERROR; + if( mkdir(zCopy, 0777) ) rc = SQLITE_ERROR; }else{ if( !S_ISDIR(sStat.st_mode) ) rc = SQLITE_ERROR; } @@ -480,7 +480,7 @@ static void writefileFunc( res = writeFile(context, zFile, argv[1], mode, mtime); if( res==1 && errno==ENOENT ){ - if( makeDirectory(zFile, mode)==SQLITE_OK ){ + if( makeDirectory(zFile)==SQLITE_OK ){ res = writeFile(context, zFile, argv[1], mode, mtime); } } diff --git a/ext/misc/fossildelta.c b/ext/misc/fossildelta.c new file mode 100644 index 0000000000..7e78f6fb12 --- /dev/null +++ b/ext/misc/fossildelta.c @@ -0,0 +1,1086 @@ +/* +** 2019-02-19 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This SQLite extension implements the delta functions used by the RBU +** extension. Three scalar functions and one table-valued function are +** implemented here: +** +** delta_apply(X,D) -- apply delta D to file X and return the result +** delta_create(X,Y) -- compute and return a delta that carries X into Y +** delta_output_size(D) -- blob size in bytes output from applying delta D +** delta_parse(D) -- returns rows describing delta D +** +** The delta format is the Fossil delta format, described in a comment +** on the delete_create() function implementation below, and also at +** +** https://www.fossil-scm.org/fossil/doc/trunk/www/delta_format.wiki +** +** This delta format is used by the RBU extension, which is the main +** reason that these routines are included in the extension library. +** RBU does not use this extension directly. Rather, this extension is +** provided as a convenience to developers who want to analyze RBU files +** that contain deltas. +*/ +#include +#include +#include +#include "sqlite3ext.h" +SQLITE_EXTENSION_INIT1 + +/* +** The "u32" type must be an unsigned 32-bit integer. Adjust this +*/ +typedef unsigned int u32; + +/* +** Must be a 16-bit value +*/ +typedef short int s16; +typedef unsigned short int u16; + + +/* +** The width of a hash window in bytes. The algorithm only works if this +** is a power of 2. +*/ +#define NHASH 16 + +/* +** The current state of the rolling hash. +** +** z[] holds the values that have been hashed. z[] is a circular buffer. +** z[i] is the first entry and z[(i+NHASH-1)%NHASH] is the last entry of +** the window. +** +** Hash.a is the sum of all elements of hash.z[]. Hash.b is a weighted +** sum. Hash.b is z[i]*NHASH + z[i+1]*(NHASH-1) + ... + z[i+NHASH-1]*1. +** (Each index for z[] should be module NHASH, of course. The %NHASH operator +** is omitted in the prior expression for brevity.) +*/ +typedef struct hash hash; +struct hash { + u16 a, b; /* Hash values */ + u16 i; /* Start of the hash window */ + char z[NHASH]; /* The values that have been hashed */ +}; + +/* +** Initialize the rolling hash using the first NHASH characters of z[] +*/ +static void hash_init(hash *pHash, const char *z){ + u16 a, b, i; + a = b = z[0]; + for(i=1; iz, z, NHASH); + pHash->a = a & 0xffff; + pHash->b = b & 0xffff; + pHash->i = 0; +} + +/* +** Advance the rolling hash by a single character "c" +*/ +static void hash_next(hash *pHash, int c){ + u16 old = pHash->z[pHash->i]; + pHash->z[pHash->i] = c; + pHash->i = (pHash->i+1)&(NHASH-1); + pHash->a = pHash->a - old + c; + pHash->b = pHash->b - NHASH*old + pHash->a; +} + +/* +** Return a 32-bit hash value +*/ +static u32 hash_32bit(hash *pHash){ + return (pHash->a & 0xffff) | (((u32)(pHash->b & 0xffff))<<16); +} + +/* +** Compute a hash on NHASH bytes. +** +** This routine is intended to be equivalent to: +** hash h; +** hash_init(&h, zInput); +** return hash_32bit(&h); +*/ +static u32 hash_once(const char *z){ + u16 a, b, i; + a = b = z[0]; + for(i=1; i0; i++, v>>=6){ + zBuf[i] = zDigits[v&0x3f]; + } + for(j=i-1; j>=0; j--){ + *(*pz)++ = zBuf[j]; + } +} + +/* +** Read bytes from *pz and convert them into a positive integer. When +** finished, leave *pz pointing to the first character past the end of +** the integer. The *pLen parameter holds the length of the string +** in *pz and is decremented once for each character in the integer. +*/ +static unsigned int deltaGetInt(const char **pz, int *pLen){ + static const signed char zValue[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36, + -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1, + }; + unsigned int v = 0; + int c; + unsigned char *z = (unsigned char*)*pz; + unsigned char *zStart = z; + while( (c = zValue[0x7f&*(z++)])>=0 ){ + v = (v<<6) + c; + } + z--; + *pLen -= z - zStart; + *pz = (char*)z; + return v; +} + +/* +** Return the number digits in the base-64 representation of a positive integer +*/ +static int digit_count(int v){ + unsigned int i, x; + for(i=1, x=64; v>=x; i++, x <<= 6){} + return i; +} + +#ifdef __GNUC__ +# define GCC_VERSION (__GNUC__*1000000+__GNUC_MINOR__*1000+__GNUC_PATCHLEVEL__) +#else +# define GCC_VERSION 0 +#endif + +/* +** Compute a 32-bit big-endian checksum on the N-byte buffer. If the +** buffer is not a multiple of 4 bytes length, compute the sum that would +** have occurred if the buffer was padded with zeros to the next multiple +** of four bytes. +*/ +static unsigned int checksum(const char *zIn, size_t N){ + static const int byteOrderTest = 1; + const unsigned char *z = (const unsigned char *)zIn; + const unsigned char *zEnd = (const unsigned char*)&zIn[N&~3]; + unsigned sum = 0; + assert( (z - (const unsigned char*)0)%4==0 ); /* Four-byte alignment */ + if( 0==*(char*)&byteOrderTest ){ + /* This is a big-endian machine */ + while( z=4003000 + while( z=1300 + while( z= 16){ + sum0 += ((unsigned)z[0] + z[4] + z[8] + z[12]); + sum1 += ((unsigned)z[1] + z[5] + z[9] + z[13]); + sum2 += ((unsigned)z[2] + z[6] + z[10]+ z[14]); + sum += ((unsigned)z[3] + z[7] + z[11]+ z[15]); + z += 16; + N -= 16; + } + while(N >= 4){ + sum0 += z[0]; + sum1 += z[1]; + sum2 += z[2]; + sum += z[3]; + z += 4; + N -= 4; + } + sum += (sum2 << 8) + (sum1 << 16) + (sum0 << 24); +#endif + } + switch(N&3){ + case 3: sum += (z[2] << 8); + case 2: sum += (z[1] << 16); + case 1: sum += (z[0] << 24); + default: ; + } + return sum; +} + +/* +** Create a new delta. +** +** The delta is written into a preallocated buffer, zDelta, which +** should be at least 60 bytes longer than the target file, zOut. +** The delta string will be NUL-terminated, but it might also contain +** embedded NUL characters if either the zSrc or zOut files are +** binary. This function returns the length of the delta string +** in bytes, excluding the final NUL terminator character. +** +** Output Format: +** +** The delta begins with a base64 number followed by a newline. This +** number is the number of bytes in the TARGET file. Thus, given a +** delta file z, a program can compute the size of the output file +** simply by reading the first line and decoding the base-64 number +** found there. The delta_output_size() routine does exactly this. +** +** After the initial size number, the delta consists of a series of +** literal text segments and commands to copy from the SOURCE file. +** A copy command looks like this: +** +** NNN@MMM, +** +** where NNN is the number of bytes to be copied and MMM is the offset +** into the source file of the first byte (both base-64). If NNN is 0 +** it means copy the rest of the input file. Literal text is like this: +** +** NNN:TTTTT +** +** where NNN is the number of bytes of text (base-64) and TTTTT is the text. +** +** The last term is of the form +** +** NNN; +** +** In this case, NNN is a 32-bit bigendian checksum of the output file +** that can be used to verify that the delta applied correctly. All +** numbers are in base-64. +** +** Pure text files generate a pure text delta. Binary files generate a +** delta that may contain some binary data. +** +** Algorithm: +** +** The encoder first builds a hash table to help it find matching +** patterns in the source file. 16-byte chunks of the source file +** sampled at evenly spaced intervals are used to populate the hash +** table. +** +** Next we begin scanning the target file using a sliding 16-byte +** window. The hash of the 16-byte window in the target is used to +** search for a matching section in the source file. When a match +** is found, a copy command is added to the delta. An effort is +** made to extend the matching section to regions that come before +** and after the 16-byte hash window. A copy command is only issued +** if the result would use less space that just quoting the text +** literally. Literal text is added to the delta for sections that +** do not match or which can not be encoded efficiently using copy +** commands. +*/ +static int delta_create( + const char *zSrc, /* The source or pattern file */ + unsigned int lenSrc, /* Length of the source file */ + const char *zOut, /* The target file */ + unsigned int lenOut, /* Length of the target file */ + char *zDelta /* Write the delta into this buffer */ +){ + int i, base; + char *zOrigDelta = zDelta; + hash h; + int nHash; /* Number of hash table entries */ + int *landmark; /* Primary hash table */ + int *collide; /* Collision chain */ + int lastRead = -1; /* Last byte of zSrc read by a COPY command */ + + /* Add the target file size to the beginning of the delta + */ + putInt(lenOut, &zDelta); + *(zDelta++) = '\n'; + + /* If the source file is very small, it means that we have no + ** chance of ever doing a copy command. Just output a single + ** literal segment for the entire target and exit. + */ + if( lenSrc<=NHASH ){ + putInt(lenOut, &zDelta); + *(zDelta++) = ':'; + memcpy(zDelta, zOut, lenOut); + zDelta += lenOut; + putInt(checksum(zOut, lenOut), &zDelta); + *(zDelta++) = ';'; + return zDelta - zOrigDelta; + } + + /* Compute the hash table used to locate matching sections in the + ** source file. + */ + nHash = lenSrc/NHASH; + collide = sqlite3_malloc64( (sqlite3_int64)nHash*2*sizeof(int) ); + memset(collide, -1, nHash*2*sizeof(int)); + landmark = &collide[nHash]; + for(i=0; i=0 && (limit--)>0 ){ + /* + ** The hash window has identified a potential match against + ** landmark block iBlock. But we need to investigate further. + ** + ** Look for a region in zOut that matches zSrc. Anchor the search + ** at zSrc[iSrc] and zOut[base+i]. Do not include anything prior to + ** zOut[base] or after zOut[outLen] nor anything after zSrc[srcLen]. + ** + ** Set cnt equal to the length of the match and set ofst so that + ** zSrc[ofst] is the first element of the match. litsz is the number + ** of characters between zOut[base] and the beginning of the match. + ** sz will be the overhead (in bytes) needed to encode the copy + ** command. Only generate copy command if the overhead of the + ** copy command is less than the amount of literal text to be copied. + */ + int cnt, ofst, litsz; + int j, k, x, y; + int sz; + int limitX; + + /* Beginning at iSrc, match forwards as far as we can. j counts + ** the number of characters that match */ + iSrc = iBlock*NHASH; + y = base+i; + limitX = ( lenSrc-iSrc <= lenOut-y ) ? lenSrc : iSrc + lenOut - y; + for(x=iSrc; x=sz && cnt>bestCnt ){ + /* Remember this match only if it is the best so far and it + ** does not increase the file size */ + bestCnt = cnt; + bestOfst = iSrc-k; + bestLitsz = litsz; + } + + /* Check the next matching block */ + iBlock = collide[iBlock]; + } + + /* We have a copy command that does not cause the delta to be larger + ** than a literal insert. So add the copy command to the delta. + */ + if( bestCnt>0 ){ + if( bestLitsz>0 ){ + /* Add an insert command before the copy */ + putInt(bestLitsz,&zDelta); + *(zDelta++) = ':'; + memcpy(zDelta, &zOut[base], bestLitsz); + zDelta += bestLitsz; + base += bestLitsz; + } + base += bestCnt; + putInt(bestCnt, &zDelta); + *(zDelta++) = '@'; + putInt(bestOfst, &zDelta); + *(zDelta++) = ','; + if( bestOfst + bestCnt -1 > lastRead ){ + lastRead = bestOfst + bestCnt - 1; + } + bestCnt = 0; + break; + } + + /* If we reach this point, it means no match is found so far */ + if( base+i+NHASH>=lenOut ){ + /* We have reached the end of the file and have not found any + ** matches. Do an "insert" for everything that does not match */ + putInt(lenOut-base, &zDelta); + *(zDelta++) = ':'; + memcpy(zDelta, &zOut[base], lenOut-base); + zDelta += lenOut-base; + base = lenOut; + break; + } + + /* Advance the hash by one character. Keep looking for a match */ + hash_next(&h, zOut[base+i+NHASH]); + i++; + } + } + /* Output a final "insert" record to get all the text at the end of + ** the file that does not match anything in the source file. + */ + if( base0 ){ + unsigned int cnt, ofst; + cnt = deltaGetInt(&zDelta, &lenDelta); + switch( zDelta[0] ){ + case '@': { + zDelta++; lenDelta--; + ofst = deltaGetInt(&zDelta, &lenDelta); + if( lenDelta>0 && zDelta[0]!=',' ){ + /* ERROR: copy command not terminated by ',' */ + return -1; + } + zDelta++; lenDelta--; + total += cnt; + if( total>limit ){ + /* ERROR: copy exceeds output file size */ + return -1; + } + if( ofst+cnt > lenSrc ){ + /* ERROR: copy extends past end of input */ + return -1; + } + memcpy(zOut, &zSrc[ofst], cnt); + zOut += cnt; + break; + } + case ':': { + zDelta++; lenDelta--; + total += cnt; + if( total>limit ){ + /* ERROR: insert command gives an output larger than predicted */ + return -1; + } + if( cnt>lenDelta ){ + /* ERROR: insert count exceeds size of delta */ + return -1; + } + memcpy(zOut, zDelta, cnt); + zOut += cnt; + zDelta += cnt; + lenDelta -= cnt; + break; + } + case ';': { + zDelta++; lenDelta--; + zOut[0] = 0; +#ifdef FOSSIL_ENABLE_DELTA_CKSUM_TEST + if( cnt!=checksum(zOrigOut, total) ){ + /* ERROR: bad checksum */ + return -1; + } +#endif + if( total!=limit ){ + /* ERROR: generated size does not match predicted size */ + return -1; + } + return total; + } + default: { + /* ERROR: unknown delta operator */ + return -1; + } + } + } + /* ERROR: unterminated delta */ + return -1; +} + +/* +** SQL functions: delta_create(X,Y) +** +** Return a delta for carrying X into Y. +*/ +static void deltaCreateFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const char *aOrig; int nOrig; /* old blob */ + const char *aNew; int nNew; /* new blob */ + char *aOut; int nOut; /* output delta */ + + assert( argc==2 ); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + if( sqlite3_value_type(argv[1])==SQLITE_NULL ) return; + nOrig = sqlite3_value_bytes(argv[0]); + aOrig = (const char*)sqlite3_value_blob(argv[0]); + nNew = sqlite3_value_bytes(argv[1]); + aNew = (const char*)sqlite3_value_blob(argv[1]); + aOut = sqlite3_malloc64(nNew+70); + if( aOut==0 ){ + sqlite3_result_error_nomem(context); + }else{ + nOut = delta_create(aOrig, nOrig, aNew, nNew, aOut); + if( nOut<0 ){ + sqlite3_free(aOut); + sqlite3_result_error(context, "cannot create fossil delta", -1); + }else{ + sqlite3_result_blob(context, aOut, nOut, sqlite3_free); + } + } +} + +/* +** SQL functions: delta_apply(X,D) +** +** Return the result of applying delta D to input X. +*/ +static void deltaApplyFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const char *aOrig; int nOrig; /* The X input */ + const char *aDelta; int nDelta; /* The input delta (D) */ + char *aOut; int nOut, nOut2; /* The output */ + + assert( argc==2 ); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + if( sqlite3_value_type(argv[1])==SQLITE_NULL ) return; + nOrig = sqlite3_value_bytes(argv[0]); + aOrig = (const char*)sqlite3_value_blob(argv[0]); + nDelta = sqlite3_value_bytes(argv[1]); + aDelta = (const char*)sqlite3_value_blob(argv[1]); + + /* Figure out the size of the output */ + nOut = delta_output_size(aDelta, nDelta); + if( nOut<0 ){ + sqlite3_result_error(context, "corrupt fossil delta", -1); + return; + } + aOut = sqlite3_malloc64((sqlite3_int64)nOut+1); + if( aOut==0 ){ + sqlite3_result_error_nomem(context); + }else{ + nOut2 = delta_apply(aOrig, nOrig, aDelta, nDelta, aOut); + if( nOut2!=nOut ){ + sqlite3_free(aOut); + sqlite3_result_error(context, "corrupt fossil delta", -1); + }else{ + sqlite3_result_blob(context, aOut, nOut, sqlite3_free); + } + } +} + + +/* +** SQL functions: delta_output_size(D) +** +** Return the size of the output that results from applying delta D. +*/ +static void deltaOutputSizeFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const char *aDelta; int nDelta; /* The input delta (D) */ + int nOut; /* Size of output */ + assert( argc==1 ); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + nDelta = sqlite3_value_bytes(argv[0]); + aDelta = (const char*)sqlite3_value_blob(argv[0]); + + /* Figure out the size of the output */ + nOut = delta_output_size(aDelta, nDelta); + if( nOut<0 ){ + sqlite3_result_error(context, "corrupt fossil delta", -1); + return; + }else{ + sqlite3_result_int(context, nOut); + } +} + +/***************************************************************************** +** Table-valued SQL function: delta_parse(DELTA) +** +** Schema: +** +** CREATE TABLE delta_parse( +** op TEXT, +** a1 INT, +** a2 ANY, +** delta HIDDEN BLOB +** ); +** +** Given an input DELTA, this function parses the delta and returns +** rows for each entry in the delta. The op column has one of the +** values SIZE, COPY, INSERT, CHECKSUM, ERROR. +** +** Assuming no errors, the first row has op='SIZE'. a1 is the size of +** the output in bytes and a2 is NULL. +** +** After the initial SIZE row, there are zero or more 'COPY' and/or 'INSERT' +** rows. A COPY row means content is copied from the source into the +** output. Column a1 is the number of bytes to copy and a2 is the offset +** into source from which to begin copying. An INSERT row means to +** insert text into the output stream. Column a1 is the number of bytes +** to insert and column is a BLOB that contains the text to be inserted. +** +** The last row of a well-formed delta will have an op value of 'CHECKSUM'. +** The a1 column will be the value of the checksum and a2 will be NULL. +** +** If the input delta is not well-formed, then a row with an op value +** of 'ERROR' is returned. The a1 value of the ERROR row is the offset +** into the delta where the error was encountered and a2 is NULL. +*/ +typedef struct deltaparsevtab_vtab deltaparsevtab_vtab; +typedef struct deltaparsevtab_cursor deltaparsevtab_cursor; +struct deltaparsevtab_vtab { + sqlite3_vtab base; /* Base class - must be first */ + /* No additional information needed */ +}; +struct deltaparsevtab_cursor { + sqlite3_vtab_cursor base; /* Base class - must be first */ + char *aDelta; /* The delta being parsed */ + int nDelta; /* Number of bytes in the delta */ + int iCursor; /* Current cursor location */ + int eOp; /* Name of current operator */ + unsigned int a1, a2; /* Arguments to current operator */ + int iNext; /* Next cursor value */ +}; + +/* Operator names: +*/ +static const char *azOp[] = { + "SIZE", "COPY", "INSERT", "CHECKSUM", "ERROR", "EOF" +}; +#define DELTAPARSE_OP_SIZE 0 +#define DELTAPARSE_OP_COPY 1 +#define DELTAPARSE_OP_INSERT 2 +#define DELTAPARSE_OP_CHECKSUM 3 +#define DELTAPARSE_OP_ERROR 4 +#define DELTAPARSE_OP_EOF 5 + +/* +** The deltaparsevtabConnect() method is invoked to create a new +** deltaparse virtual table. +** +** Think of this routine as the constructor for deltaparsevtab_vtab objects. +** +** All this routine needs to do is: +** +** (1) Allocate the deltaparsevtab_vtab object and initialize all fields. +** +** (2) Tell SQLite (via the sqlite3_declare_vtab() interface) what the +** result set of queries against the virtual table will look like. +*/ +static int deltaparsevtabConnect( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + deltaparsevtab_vtab *pNew; + int rc; + + rc = sqlite3_declare_vtab(db, + "CREATE TABLE x(op,a1,a2,delta HIDDEN)" + ); + /* For convenience, define symbolic names for the index to each column. */ +#define DELTAPARSEVTAB_OP 0 +#define DELTAPARSEVTAB_A1 1 +#define DELTAPARSEVTAB_A2 2 +#define DELTAPARSEVTAB_DELTA 3 + if( rc==SQLITE_OK ){ + pNew = sqlite3_malloc64( sizeof(*pNew) ); + *ppVtab = (sqlite3_vtab*)pNew; + if( pNew==0 ) return SQLITE_NOMEM; + memset(pNew, 0, sizeof(*pNew)); + } + return rc; +} + +/* +** This method is the destructor for deltaparsevtab_vtab objects. +*/ +static int deltaparsevtabDisconnect(sqlite3_vtab *pVtab){ + deltaparsevtab_vtab *p = (deltaparsevtab_vtab*)pVtab; + sqlite3_free(p); + return SQLITE_OK; +} + +/* +** Constructor for a new deltaparsevtab_cursor object. +*/ +static int deltaparsevtabOpen(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ + deltaparsevtab_cursor *pCur; + pCur = sqlite3_malloc( sizeof(*pCur) ); + if( pCur==0 ) return SQLITE_NOMEM; + memset(pCur, 0, sizeof(*pCur)); + *ppCursor = &pCur->base; + return SQLITE_OK; +} + +/* +** Destructor for a deltaparsevtab_cursor. +*/ +static int deltaparsevtabClose(sqlite3_vtab_cursor *cur){ + deltaparsevtab_cursor *pCur = (deltaparsevtab_cursor*)cur; + sqlite3_free(pCur); + return SQLITE_OK; +} + + +/* +** Advance a deltaparsevtab_cursor to its next row of output. +*/ +static int deltaparsevtabNext(sqlite3_vtab_cursor *cur){ + deltaparsevtab_cursor *pCur = (deltaparsevtab_cursor*)cur; + const char *z; + int i = 0; + + pCur->iCursor = pCur->iNext; + z = pCur->aDelta + pCur->iCursor; + pCur->a1 = deltaGetInt(&z, &i); + switch( z[0] ){ + case '@': { + z++; + pCur->a2 = deltaGetInt(&z, &i); + pCur->eOp = DELTAPARSE_OP_COPY; + pCur->iNext = (int)(&z[1] - pCur->aDelta); + break; + } + case ':': { + z++; + pCur->a2 = (unsigned int)(z - pCur->aDelta); + pCur->eOp = DELTAPARSE_OP_INSERT; + pCur->iNext = (int)(&z[pCur->a1] - pCur->aDelta); + break; + } + case ';': { + pCur->eOp = DELTAPARSE_OP_CHECKSUM; + pCur->iNext = pCur->nDelta; + break; + } + default: { + if( pCur->iNext==pCur->nDelta ){ + pCur->eOp = DELTAPARSE_OP_EOF; + }else{ + pCur->eOp = DELTAPARSE_OP_ERROR; + pCur->iNext = pCur->nDelta; + } + break; + } + } + return SQLITE_OK; +} + +/* +** Return values of columns for the row at which the deltaparsevtab_cursor +** is currently pointing. +*/ +static int deltaparsevtabColumn( + sqlite3_vtab_cursor *cur, /* The cursor */ + sqlite3_context *ctx, /* First argument to sqlite3_result_...() */ + int i /* Which column to return */ +){ + deltaparsevtab_cursor *pCur = (deltaparsevtab_cursor*)cur; + switch( i ){ + case DELTAPARSEVTAB_OP: { + sqlite3_result_text(ctx, azOp[pCur->eOp], -1, SQLITE_STATIC); + break; + } + case DELTAPARSEVTAB_A1: { + sqlite3_result_int(ctx, pCur->a1); + break; + } + case DELTAPARSEVTAB_A2: { + if( pCur->eOp==DELTAPARSE_OP_COPY ){ + sqlite3_result_int(ctx, pCur->a2); + }else if( pCur->eOp==DELTAPARSE_OP_INSERT ){ + sqlite3_result_blob(ctx, pCur->aDelta+pCur->a2, pCur->a1, + SQLITE_TRANSIENT); + } + break; + } + case DELTAPARSEVTAB_DELTA: { + sqlite3_result_blob(ctx, pCur->aDelta, pCur->nDelta, SQLITE_TRANSIENT); + break; + } + } + return SQLITE_OK; +} + +/* +** Return the rowid for the current row. In this implementation, the +** rowid is the same as the output value. +*/ +static int deltaparsevtabRowid(sqlite3_vtab_cursor *cur, sqlite_int64 *pRowid){ + deltaparsevtab_cursor *pCur = (deltaparsevtab_cursor*)cur; + *pRowid = pCur->iCursor; + return SQLITE_OK; +} + +/* +** Return TRUE if the cursor has been moved off of the last +** row of output. +*/ +static int deltaparsevtabEof(sqlite3_vtab_cursor *cur){ + deltaparsevtab_cursor *pCur = (deltaparsevtab_cursor*)cur; + return pCur->eOp==DELTAPARSE_OP_EOF; +} + +/* +** This method is called to "rewind" the deltaparsevtab_cursor object back +** to the first row of output. This method is always called at least +** once prior to any call to deltaparsevtabColumn() or deltaparsevtabRowid() or +** deltaparsevtabEof(). +*/ +static int deltaparsevtabFilter( + sqlite3_vtab_cursor *pVtabCursor, + int idxNum, const char *idxStr, + int argc, sqlite3_value **argv +){ + deltaparsevtab_cursor *pCur = (deltaparsevtab_cursor *)pVtabCursor; + const char *a; + int i = 0; + pCur->eOp = DELTAPARSE_OP_ERROR; + if( idxNum!=1 ){ + return SQLITE_OK; + } + pCur->nDelta = sqlite3_value_bytes(argv[0]); + a = (const char*)sqlite3_value_blob(argv[0]); + if( pCur->nDelta==0 || a==0 ){ + return SQLITE_OK; + } + pCur->aDelta = sqlite3_malloc64( pCur->nDelta+1 ); + if( pCur->aDelta==0 ){ + pCur->nDelta = 0; + return SQLITE_NOMEM; + } + memcpy(pCur->aDelta, a, pCur->nDelta); + pCur->aDelta[pCur->nDelta] = 0; + a = pCur->aDelta; + pCur->eOp = DELTAPARSE_OP_SIZE; + pCur->a1 = deltaGetInt(&a, &i); + if( a[0]!='\n' ){ + pCur->eOp = DELTAPARSE_OP_ERROR; + pCur->a1 = pCur->a2 = 0; + pCur->iNext = pCur->nDelta; + return SQLITE_OK; + } + a++; + pCur->iNext = (unsigned int)(a - pCur->aDelta); + return SQLITE_OK; +} + +/* +** SQLite will invoke this method one or more times while planning a query +** that uses the virtual table. This routine needs to create +** a query plan for each invocation and compute an estimated cost for that +** plan. +*/ +static int deltaparsevtabBestIndex( + sqlite3_vtab *tab, + sqlite3_index_info *pIdxInfo +){ + int i; + for(i=0; inConstraint; i++){ + if( pIdxInfo->aConstraint[i].iColumn != DELTAPARSEVTAB_DELTA ) continue; + if( pIdxInfo->aConstraint[i].usable==0 ) continue; + if( pIdxInfo->aConstraint[i].op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue; + pIdxInfo->aConstraintUsage[i].argvIndex = 1; + pIdxInfo->aConstraintUsage[i].omit = 1; + pIdxInfo->estimatedCost = (double)1; + pIdxInfo->estimatedRows = 10; + pIdxInfo->idxNum = 1; + return SQLITE_OK; + } + pIdxInfo->idxNum = 0; + pIdxInfo->estimatedCost = (double)0x7fffffff; + pIdxInfo->estimatedRows = 0x7fffffff; + return SQLITE_CONSTRAINT; +} + +/* +** This following structure defines all the methods for the +** virtual table. +*/ +static sqlite3_module deltaparsevtabModule = { + /* iVersion */ 0, + /* xCreate */ 0, + /* xConnect */ deltaparsevtabConnect, + /* xBestIndex */ deltaparsevtabBestIndex, + /* xDisconnect */ deltaparsevtabDisconnect, + /* xDestroy */ 0, + /* xOpen */ deltaparsevtabOpen, + /* xClose */ deltaparsevtabClose, + /* xFilter */ deltaparsevtabFilter, + /* xNext */ deltaparsevtabNext, + /* xEof */ deltaparsevtabEof, + /* xColumn */ deltaparsevtabColumn, + /* xRowid */ deltaparsevtabRowid, + /* xUpdate */ 0, + /* xBegin */ 0, + /* xSync */ 0, + /* xCommit */ 0, + /* xRollback */ 0, + /* xFindMethod */ 0, + /* xRename */ 0, + /* xSavepoint */ 0, + /* xRelease */ 0, + /* xRollbackTo */ 0, + /* xShadowName */ 0 +}; + + + +#ifdef _WIN32 +__declspec(dllexport) +#endif +int sqlite3_fossildelta_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + int rc = SQLITE_OK; + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + rc = sqlite3_create_function(db, "delta_create", 2, SQLITE_UTF8, 0, + deltaCreateFunc, 0, 0); + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function(db, "delta_apply", 2, SQLITE_UTF8, 0, + deltaApplyFunc, 0, 0); + } + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function(db, "delta_output_size", 1, SQLITE_UTF8, 0, + deltaOutputSizeFunc, 0, 0); + } + if( rc==SQLITE_OK ){ + rc = sqlite3_create_module(db, "delta_parse", &deltaparsevtabModule, 0); + } + return rc; +} diff --git a/ext/misc/fuzzer.c b/ext/misc/fuzzer.c index 353b7ecd50..50445f5632 100644 --- a/ext/misc/fuzzer.c +++ b/ext/misc/fuzzer.c @@ -456,7 +456,7 @@ static char *fuzzerDequote(const char *zIn){ char q = zIn[0]; /* Quote character (if any ) */ if( q!='[' && q!= '\'' && q!='"' && q!='`' ){ - memcpy(zOut, zIn, nIn+1); + memcpy(zOut, zIn, (size_t)(nIn+1)); }else{ int iOut = 0; /* Index of next byte to write to output */ int iIn; /* Index of next byte to read from input */ @@ -524,7 +524,7 @@ static int fuzzerConnect( memset(pNew, 0, sizeof(*pNew)); pNew->zClassName = (char*)&pNew[1]; - memcpy(pNew->zClassName, zModule, nModule+1); + memcpy(pNew->zClassName, zModule, (size_t)(nModule+1)); zTab = fuzzerDequote(argv[3]); if( zTab==0 ){ diff --git a/ext/misc/percentile.c b/ext/misc/percentile.c index a8e4981f70..88fc5a96ff 100644 --- a/ext/misc/percentile.c +++ b/ext/misc/percentile.c @@ -108,8 +108,8 @@ static void percentStep(sqlite3_context *pCtx, int argc, sqlite3_value **argv){ /* Requirement 3: P must be a number between 0 and 100 */ eType = sqlite3_value_numeric_type(argv[1]); rPct = sqlite3_value_double(argv[1]); - if( (eType!=SQLITE_INTEGER && eType!=SQLITE_FLOAT) || - ((rPct = sqlite3_value_double(argv[1]))<0.0 || rPct>100.0) ){ + if( (eType!=SQLITE_INTEGER && eType!=SQLITE_FLOAT) + || rPct<0.0 || rPct>100.0 ){ sqlite3_result_error(pCtx, "2nd argument to percentile() is not " "a number between 0.0 and 100.0", -1); return; diff --git a/ext/misc/unionvtab.c b/ext/misc/unionvtab.c index 736602316b..6ac7ca6e95 100644 --- a/ext/misc/unionvtab.c +++ b/ext/misc/unionvtab.c @@ -256,7 +256,7 @@ static void *unionMalloc(int *pRc, sqlite3_int64 nByte){ if( *pRc==SQLITE_OK ){ pRet = sqlite3_malloc64(nByte); if( pRet ){ - memset(pRet, 0, nByte); + memset(pRet, 0, (size_t)nByte); }else{ *pRc = SQLITE_NOMEM; } @@ -279,7 +279,7 @@ static char *unionStrdup(int *pRc, const char *zIn){ sqlite3_int64 nByte = strlen(zIn) + 1; zRet = unionMalloc(pRc, nByte); if( zRet ){ - memcpy(zRet, zIn, nByte); + memcpy(zRet, zIn, (size_t)nByte); } } return zRet; diff --git a/ext/misc/vfsstat.c b/ext/misc/vfsstat.c index 14753d277d..7b5102a5a1 100644 --- a/ext/misc/vfsstat.c +++ b/ext/misc/vfsstat.c @@ -783,8 +783,8 @@ static sqlite3_module VfsStatModule = { */ static int vstatRegister( sqlite3 *db, - const char **pzErrMsg, - const struct sqlite3_api_routines *pThunk + char **pzErrMsg, + const sqlite3_api_routines *pThunk ){ return sqlite3_create_module(db, "vfsstat", &VfsStatModule, 0); } @@ -809,7 +809,10 @@ int sqlite3_vfsstat_init( vstat_vfs.base.szOsFile = sizeof(VStatFile) + vstat_vfs.pVfs->szOsFile; rc = sqlite3_vfs_register(&vstat_vfs.base, 1); if( rc==SQLITE_OK ){ - rc = sqlite3_auto_extension(vstatRegister); + rc = vstatRegister(db, pzErrMsg, pApi); + if( rc==SQLITE_OK ){ + rc = sqlite3_auto_extension(vstatRegister); + } } if( rc==SQLITE_OK ) rc = SQLITE_OK_LOAD_PERMANENTLY; return rc; diff --git a/ext/rbu/rbupartial.test b/ext/rbu/rbupartial.test new file mode 100644 index 0000000000..3cb076f22e --- /dev/null +++ b/ext/rbu/rbupartial.test @@ -0,0 +1,86 @@ +# 2019 April 11 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# + +source [file join [file dirname [info script]] rbu_common.tcl] +set ::testprefix rbupartial + +db close +sqlite3_shutdown +sqlite3_config_uri 1 + +foreach {tn without_rowid a b c d} { + 1 "" a b c d + 2 "WITHOUT ROWID" aaa bbb ccc ddd + 3 "WITHOUT ROWID" "\"hello\"" {"one'two"} {[c]} ddd + 4 "WITHOUT ROWID" {`a b`} {"one'two"} {[c c c]} ddd + 5 "" a b c {"d""d"} + 6 "" {'one''two'} b {"c""c"} {"d""d"} +} { + eval [string map [list \ + %WITHOUT_ROWID% $without_rowid %A% $a %B% $b %C% $c %D% $d + ] { + reset_db + do_execsql_test $tn.1.0 { + CREATE TABLE t1(%A% PRIMARY KEY, %B%, %C%, %D%) %WITHOUT_ROWID% ; + CREATE INDEX i1b ON t1(%B%); + CREATE INDEX i1b2 ON t1(%B%) WHERE %C%<5; + CREATE INDEX i1b3 ON t1(%B%) WHERE %C%>=5; + + CREATE INDEX i1c ON t1(%C%); + CREATE INDEX i1c2 ON t1(%C%) WHERE %C% IS NULL; + CREATE INDEX i1c3 ON t1(%C%) WHERE %C% IS NOT NULL; + + CREATE INDEX i1c4 ON t1(%C%) WHERE %D% < 'd'; + } + + do_execsql_test $tn.1.1 { + INSERT INTO t1 VALUES(0, NULL, NULL, 'a'); + INSERT INTO t1 VALUES(1, 2, 3, 'b'); + INSERT INTO t1 VALUES(4, 5, 6, 'c'); + INSERT INTO t1 VALUES(7, 8, 9, 'd'); + } + + forcedelete rbu.db + do_test $tn.1.2 { + sqlite3 rbu rbu.db + rbu eval { + CREATE TABLE data_t1(%A%, %B%, %C%, %D%, rbu_control); + + INSERT INTO data_t1 VALUES(10, 11, 12, 'e', 0); + INSERT INTO data_t1 VALUES(13, 14, NULL, 'f', 0); + + INSERT INTO data_t1 VALUES(0, NULL, NULL, NULL, 1); + INSERT INTO data_t1 VALUES(4, NULL, NULL, NULL, 1); + + INSERT INTO data_t1 VALUES(7, NULL, 4, NULL, '..x.'); + INSERT INTO data_t1 VALUES(1, 10, NULL, NULL, '.xx.'); + } + rbu close + } {} + + do_test $tn.1.3 { + run_rbu test.db rbu.db + execsql { PRAGMA integrity_check } + } {ok} + + do_execsql_test $tn.1.4 { + SELECT * FROM t1 ORDER BY %A%; + } { + 1 10 {} b 7 8 4 d 10 11 12 e 13 14 {} f + } + + set step 0 + do_rbu_vacuum_test $tn.1.5 0 + }] +} + +finish_test diff --git a/ext/rbu/sqlite3rbu.c b/ext/rbu/sqlite3rbu.c index e86606be99..0160b83188 100644 --- a/ext/rbu/sqlite3rbu.c +++ b/ext/rbu/sqlite3rbu.c @@ -240,6 +240,11 @@ struct RbuUpdateStmt { ** it points to an array of flags nTblCol elements in size. The flag is ** set for each column that is either a part of the PK or a part of an ** index. Or clear otherwise. +** +** If there are one or more partial indexes on the table, all fields of +** this array set set to 1. This is because in that case, the module has +** no way to tell which fields will be required to add and remove entries +** from the partial indexes. ** */ struct RbuObjIter { @@ -684,6 +689,7 @@ static void rbuFossilDeltaFunc( }else{ nOut2 = rbuDeltaApply(aOrig, nOrig, aDelta, nDelta, aOut); if( nOut2!=nOut ){ + sqlite3_free(aOut); sqlite3_result_error(context, "corrupt fossil delta", -1); }else{ sqlite3_result_blob(context, aOut, nOut, sqlite3_free); @@ -1034,7 +1040,7 @@ static int rbuMPrintfExec(sqlite3rbu *p, sqlite3 *db, const char *zFmt, ...){ ** immediately without attempting the allocation or modifying the stored ** error code. */ -static void *rbuMalloc(sqlite3rbu *p, int nByte){ +static void *rbuMalloc(sqlite3rbu *p, sqlite3_int64 nByte){ void *pRet = 0; if( p->rc==SQLITE_OK ){ assert( nByte>0 ); @@ -1055,7 +1061,7 @@ static void *rbuMalloc(sqlite3rbu *p, int nByte){ ** error code in the RBU handle passed as the first argument. */ static void rbuAllocateIterArrays(sqlite3rbu *p, RbuObjIter *pIter, int nCol){ - int nByte = (2*sizeof(char*) + sizeof(int) + 3*sizeof(u8)) * nCol; + sqlite3_int64 nByte = (2*sizeof(char*) + sizeof(int) + 3*sizeof(u8)) * nCol; char **azNew; azNew = (char**)rbuMalloc(p, nByte); @@ -1249,8 +1255,12 @@ static void rbuObjIterCacheIndexedCols(sqlite3rbu *p, RbuObjIter *pIter){ pIter->nIndex = 0; while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pList) ){ const char *zIdx = (const char*)sqlite3_column_text(pList, 1); + int bPartial = sqlite3_column_int(pList, 4); sqlite3_stmt *pXInfo = 0; if( zIdx==0 ) break; + if( bPartial ){ + memset(pIter->abIndexed, 0x01, sizeof(u8)*pIter->nTblCol); + } p->rc = prepareFreeAndCollectError(p->dbMain, &pXInfo, &p->zErrmsg, sqlite3_mprintf("PRAGMA main.index_xinfo = %Q", zIdx) ); @@ -1695,7 +1705,7 @@ static char *rbuObjIterGetSetlist( */ static char *rbuObjIterGetBindlist(sqlite3rbu *p, int nBind){ char *zRet = 0; - int nByte = nBind*2 + 1; + sqlite3_int64 nByte = 2*(sqlite3_int64)nBind + 1; zRet = (char*)rbuMalloc(p, nByte); if( zRet ){ @@ -1957,6 +1967,62 @@ static void rbuTmpInsertFunc( } } +static char *rbuObjIterGetIndexWhere(sqlite3rbu *p, RbuObjIter *pIter){ + sqlite3_stmt *pStmt = 0; + int rc = p->rc; + char *zRet = 0; + + if( rc==SQLITE_OK ){ + rc = prepareAndCollectError(p->dbMain, &pStmt, &p->zErrmsg, + "SELECT trim(sql) FROM sqlite_master WHERE type='index' AND name=?" + ); + } + if( rc==SQLITE_OK ){ + int rc2; + rc = sqlite3_bind_text(pStmt, 1, pIter->zIdx, -1, SQLITE_STATIC); + if( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){ + const char *zSql = (const char*)sqlite3_column_text(pStmt, 0); + if( zSql ){ + int nParen = 0; /* Number of open parenthesis */ + int i; + for(i=0; zSql[i]; i++){ + char c = zSql[i]; + if( c=='(' ){ + nParen++; + } + else if( c==')' ){ + nParen--; + if( nParen==0 ){ + i++; + break; + } + }else if( c=='"' || c=='\'' || c=='`' ){ + for(i++; 1; i++){ + if( zSql[i]==c ){ + if( zSql[i+1]!=c ) break; + i++; + } + } + }else if( c=='[' ){ + for(i++; 1; i++){ + if( zSql[i]==']' ) break; + } + } + } + if( zSql[i] ){ + zRet = rbuStrndup(&zSql[i], &rc); + } + } + } + + rc2 = sqlite3_finalize(pStmt); + if( rc==SQLITE_OK ) rc = rc2; + } + + p->rc = rc; + return zRet; +} + /* ** Ensure that the SQLite statement handles required to update the ** target database object currently indicated by the iterator passed @@ -1986,6 +2052,7 @@ static int rbuObjIterPrepareAll( char *zImposterPK = 0; /* Primary key declaration for imposter */ char *zWhere = 0; /* WHERE clause on PK columns */ char *zBind = 0; + char *zPart = 0; int nBind = 0; assert( pIter->eType!=RBU_PK_VTAB ); @@ -1993,6 +2060,7 @@ static int rbuObjIterPrepareAll( p, pIter, &zImposterCols, &zImposterPK, &zWhere, &nBind ); zBind = rbuObjIterGetBindlist(p, nBind); + zPart = rbuObjIterGetIndexWhere(p, pIter); /* Create the imposter table used to write to this index. */ sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, p->dbMain, "main", 0, 1); @@ -2025,28 +2093,30 @@ static int rbuObjIterPrepareAll( char *zSql; if( rbuIsVacuum(p) ){ zSql = sqlite3_mprintf( - "SELECT %s, 0 AS rbu_control FROM '%q' ORDER BY %s%s", + "SELECT %s, 0 AS rbu_control FROM '%q' %s ORDER BY %s%s", zCollist, pIter->zDataTbl, - zCollist, zLimit + zPart, zCollist, zLimit ); }else if( pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_NONE ){ zSql = sqlite3_mprintf( - "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' ORDER BY %s%s", + "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s ORDER BY %s%s", zCollist, p->zStateDb, pIter->zDataTbl, - zCollist, zLimit + zPart, zCollist, zLimit ); }else{ zSql = sqlite3_mprintf( - "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' " + "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' %s " "UNION ALL " "SELECT %s, rbu_control FROM '%q' " - "WHERE typeof(rbu_control)='integer' AND rbu_control!=1 " + "%s %s typeof(rbu_control)='integer' AND rbu_control!=1 " "ORDER BY %s%s", - zCollist, p->zStateDb, pIter->zDataTbl, + zCollist, p->zStateDb, pIter->zDataTbl, zPart, zCollist, pIter->zDataTbl, + zPart, + (zPart ? "AND" : "WHERE"), zCollist, zLimit ); } @@ -2057,6 +2127,7 @@ static int rbuObjIterPrepareAll( sqlite3_free(zImposterPK); sqlite3_free(zWhere); sqlite3_free(zBind); + sqlite3_free(zPart); }else{ int bRbuRowid = (pIter->eType==RBU_PK_VTAB) ||(pIter->eType==RBU_PK_NONE) @@ -4490,7 +4561,7 @@ static int rbuVfsShmMap( assert( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) ); if( eStage==RBU_STAGE_OAL || eStage==RBU_STAGE_MOVE ){ if( iRegion<=p->nShm ){ - int nByte = (iRegion+1) * sizeof(char*); + sqlite3_int64 nByte = (iRegion+1) * sizeof(char*); char **apNew = (char**)sqlite3_realloc64(p->apShm, nByte); if( apNew==0 ){ rc = SQLITE_NOMEM; diff --git a/ext/rtree/geopoly.c b/ext/rtree/geopoly.c index d93eca2309..fa58838a31 100644 --- a/ext/rtree/geopoly.c +++ b/ext/rtree/geopoly.c @@ -269,7 +269,7 @@ static GeoPoly *geopolyParseJson(const unsigned char *z, int *pRc){ GeoPoly *pOut; int x = 1; s.nVertex--; /* Remove the redundant vertex at the end */ - pOut = sqlite3_malloc64( GEOPOLY_SZ(s.nVertex) ); + pOut = sqlite3_malloc64( GEOPOLY_SZ((sqlite3_int64)s.nVertex) ); x = 1; if( pOut==0 ) goto parse_json_err; pOut->nVertex = s.nVertex; @@ -655,7 +655,7 @@ static GeoPoly *geopolyBBox( if( pRc ) *pRc = SQLITE_OK; if( aCoord==0 ){ geopolyBboxFill: - pOut = sqlite3_realloc(p, GEOPOLY_SZ(4)); + pOut = sqlite3_realloc64(p, GEOPOLY_SZ(4)); if( pOut==0 ){ sqlite3_free(p); if( context ) sqlite3_result_error_nomem(context); @@ -1051,9 +1051,9 @@ static GeoSegment *geopolySortSegmentsByYAndC(GeoSegment *pList){ ** Determine the overlap between two polygons */ static int geopolyOverlap(GeoPoly *p1, GeoPoly *p2){ - int nVertex = p1->nVertex + p2->nVertex + 2; + sqlite3_int64 nVertex = p1->nVertex + p2->nVertex + 2; GeoOverlap *p; - int nByte; + sqlite3_int64 nByte; GeoEvent *pThisEvent; double rX; int rc = 0; @@ -1065,7 +1065,7 @@ static int geopolyOverlap(GeoPoly *p1, GeoPoly *p2){ nByte = sizeof(GeoEvent)*nVertex*2 + sizeof(GeoSegment)*nVertex + sizeof(GeoOverlap); - p = sqlite3_malloc( nByte ); + p = sqlite3_malloc64( nByte ); if( p==0 ) return -1; p->aEvent = (GeoEvent*)&p[1]; p->aSegment = (GeoSegment*)&p->aEvent[nVertex*2]; @@ -1224,8 +1224,8 @@ static int geopolyInit( ){ int rc = SQLITE_OK; Rtree *pRtree; - int nDb; /* Length of string argv[1] */ - int nName; /* Length of string argv[2] */ + sqlite3_int64 nDb; /* Length of string argv[1] */ + sqlite3_int64 nName; /* Length of string argv[2] */ sqlite3_str *pSql; char *zSql; int ii; @@ -1233,9 +1233,9 @@ static int geopolyInit( sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); /* Allocate the sqlite3_vtab structure */ - nDb = (int)strlen(argv[1]); - nName = (int)strlen(argv[2]); - pRtree = (Rtree *)sqlite3_malloc(sizeof(Rtree)+nDb+nName+2); + nDb = strlen(argv[1]); + nName = strlen(argv[2]); + pRtree = (Rtree *)sqlite3_malloc64(sizeof(Rtree)+nDb+nName+2); if( !pRtree ){ return SQLITE_NOMEM; } diff --git a/ext/rtree/rtree.c b/ext/rtree/rtree.c index 73d06614f4..78849bd555 100644 --- a/ext/rtree/rtree.c +++ b/ext/rtree/rtree.c @@ -3755,49 +3755,45 @@ static int rtreeInit( ** *2 coordinates. */ static void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){ - char *zText = 0; RtreeNode node; Rtree tree; int ii; + int nData; + int errCode; + sqlite3_str *pOut; UNUSED_PARAMETER(nArg); memset(&node, 0, sizeof(RtreeNode)); memset(&tree, 0, sizeof(Rtree)); tree.nDim = (u8)sqlite3_value_int(apArg[0]); + if( tree.nDim<1 || tree.nDim>5 ) return; tree.nDim2 = tree.nDim*2; tree.nBytesPerCell = 8 + 8 * tree.nDim; node.zData = (u8 *)sqlite3_value_blob(apArg[1]); + nData = sqlite3_value_bytes(apArg[1]); + if( nData<4 ) return; + if( nData0 ) sqlite3_str_append(pOut, " ", 1); + sqlite3_str_appendf(pOut, "{%lld", cell.iRowid); for(jj=0; jj0 ){ - if( fread(pBuf, sz, 1, f)!=1 ){ - fprintf(stderr, "cannot read all %d bytes of \"%s\"\n", sz, zFilename); + if( fread(pBuf, (size_t)sz, 1, f)!=1 ){ + fprintf(stderr, "cannot read all %d bytes of \"%s\"\n", + (int)sz, zFilename); exit(1); } fclose(f); } - *pSz = sz; + *pSz = (int)sz; *ppBuf = pBuf; } diff --git a/ext/session/changesetfuzz.c b/ext/session/changesetfuzz.c index 8cbca80414..bbd72f6d9d 100644 --- a/ext/session/changesetfuzz.c +++ b/ext/session/changesetfuzz.c @@ -154,17 +154,18 @@ static void fuzzReadFile(const char *zFilename, int *pSz, void **ppBuf){ pBuf = sqlite3_malloc64( sz ? sz : 1 ); if( pBuf==0 ){ fprintf(stderr, "cannot allocate %d to hold content of \"%s\"\n", - sz, zFilename); + (int)sz, zFilename); exit(1); } if( sz>0 ){ - if( fread(pBuf, sz, 1, f)!=1 ){ - fprintf(stderr, "cannot read all %d bytes of \"%s\"\n", sz, zFilename); + if( fread(pBuf, (size_t)sz, 1, f)!=1 ){ + fprintf(stderr, "cannot read all %d bytes of \"%s\"\n", + (int)sz, zFilename); exit(1); } fclose(f); } - *pSz = sz; + *pSz = (int)sz; *ppBuf = pBuf; } @@ -343,7 +344,7 @@ struct FuzzChange { static void *fuzzMalloc(sqlite3_int64 nByte){ void *pRet = sqlite3_malloc64(nByte); if( pRet ){ - memset(pRet, 0, nByte); + memset(pRet, 0, (size_t)nByte); } return pRet; } @@ -384,7 +385,7 @@ static int fuzzGetVarint(u8 *p, int *pnVal){ static int fuzzPutVarint(u8 *p, int nVal){ assert( nVal>0 && nVal<2097152 ); if( nVal<128 ){ - p[0] = nVal; + p[0] = (u8)nVal; return 1; } if( nVal<16384 ){ @@ -459,7 +460,7 @@ static int fuzzParseHeader( pGrp->aPK = p; p += pGrp->nCol; pGrp->zTab = (const char*)p; - p = &p[strlen(p)+1]; + p = &p[strlen((const char*)p)+1]; if( p>=pEnd ){ rc = fuzzCorrupt(); @@ -695,8 +696,6 @@ static int fuzzPrintRecord(FuzzChangesetGroup *pGrp, u8 **ppRec, int bPKOnly){ case 0x03: /* text */ case 0x04: { /* blob */ int nTxt; - int sz; - int i; p += fuzzGetVarint(p, &nTxt); printf("%s%s", zPre, eType==0x03 ? "'" : "X'"); for(i=0; iaSub[1] = nByte; + pChange->aSub[1] = (u8)nByte; fuzzRandomBlob(nByte, &pChange->aSub[2]); if( pChange->aSub[0]==0x03 ){ int i; @@ -1004,7 +1003,7 @@ static int fuzzCopyChange( }else if( p==pFuzz->pSub2 ){ pCopy = pFuzz->pSub1; }else if( i==iUndef ){ - pCopy = "\0"; + pCopy = (u8*)"\0"; } if( pCopy[0]==0x00 && eNew!=eType && eType==SQLITE_UPDATE && iRec==0 ){ @@ -1067,7 +1066,7 @@ static int fuzzCopyChange( for(i=0; inCol; i++){ int sz; u8 *pCopy = pCsr; - if( pGrp->aPK[i] ) pCopy = "\0"; + if( pGrp->aPK[i] ) pCopy = (u8*)"\0"; fuzzChangeSize(pCopy, &sz); memcpy(pOut, pCopy, sz); pOut += sz; diff --git a/ext/session/sessionB.test b/ext/session/sessionB.test index eae41f76ad..2c103d5e36 100644 --- a/ext/session/sessionB.test +++ b/ext/session/sessionB.test @@ -258,8 +258,7 @@ do_patchconcat_test 4.3.3 { INSERT INTO t2 VALUES('a', 'a', 'a', 'a'); } { DELETE FROM t2 WHERE c = 'a'; -} { -} +} {} # INSERT + UPDATE do_patchconcat_test 4.3.4 { diff --git a/ext/session/sqlite3session.c b/ext/session/sqlite3session.c index 6f722bab3c..acf455a509 100644 --- a/ext/session/sqlite3session.c +++ b/ext/session/sqlite3session.c @@ -902,7 +902,7 @@ static int sessionGrowHash(int bPatchset, SessionTable *pTab){ if( pTab->nChange==0 || pTab->nEntry>=(pTab->nChange/2) ){ int i; SessionChange **apNew; - int nNew = (pTab->nChange ? pTab->nChange : 128) * 2; + sqlite3_int64 nNew = 2*(sqlite3_int64)(pTab->nChange ? pTab->nChange : 128); apNew = (SessionChange **)sqlite3_malloc64(sizeof(SessionChange *) * nNew); if( apNew==0 ){ @@ -1829,7 +1829,7 @@ int sqlite3session_attach( ** If successful, return zero. Otherwise, if an OOM condition is encountered, ** set *pRc to SQLITE_NOMEM and return non-zero. */ -static int sessionBufferGrow(SessionBuffer *p, int nByte, int *pRc){ +static int sessionBufferGrow(SessionBuffer *p, size_t nByte, int *pRc){ if( *pRc==SQLITE_OK && p->nAlloc-p->nBufnAlloc ? p->nAlloc : 128; @@ -2947,7 +2947,7 @@ static int sessionChangesetReadTblhdr(sqlite3_changeset_iter *p){ } if( rc==SQLITE_OK ){ - int iPK = sizeof(sqlite3_value*)*p->nCol*2; + size_t iPK = sizeof(sqlite3_value*)*p->nCol*2; memset(p->tblhdr.aBuf, 0, iPK); memcpy(&p->tblhdr.aBuf[iPK], &p->in.aData[p->in.iNext], nCopy); p->in.iNext += nCopy; @@ -3862,7 +3862,7 @@ static int sessionSeekToRow( } /* -** This function is called from within sqlite3changset_apply_v2() when +** This function is called from within sqlite3changeset_apply_v2() when ** a conflict is encountered and resolved using conflict resolution ** mode eType (either SQLITE_CHANGESET_OMIT or SQLITE_CHANGESET_REPLACE).. ** It adds a conflict resolution record to the buffer in @@ -4251,7 +4251,7 @@ static int sessionRetryConstraints( rc = sessionChangesetStart(&pIter2, 0, 0, cons.nBuf, cons.aBuf, 0); if( rc==SQLITE_OK ){ - int nByte = 2*pApply->nCol*sizeof(sqlite3_value*); + size_t nByte = 2*pApply->nCol*sizeof(sqlite3_value*); int rc2; pIter2->bPatchset = bPatchset; pIter2->zTab = (char*)zTab; diff --git a/ext/session/sqlite3session.h b/ext/session/sqlite3session.h index e9c2989087..2f9ee9cd3c 100644 --- a/ext/session/sqlite3session.h +++ b/ext/session/sqlite3session.h @@ -1415,7 +1415,7 @@ int sqlite3rebaser_configure( ** in size. This function allocates and populates a buffer with a copy ** of the changeset rebased rebased according to the configuration of the ** rebaser object passed as the first argument. If successful, (*ppOut) -** is set to point to the new buffer containing the rebased changset and +** is set to point to the new buffer containing the rebased changeset and ** (*pnOut) to its size in bytes and SQLITE_OK returned. It is the ** responsibility of the caller to eventually free the new buffer using ** sqlite3_free(). Otherwise, if an error occurs, (*ppOut) and (*pnOut) diff --git a/main.mk b/main.mk index c4e8b78e91..f418eec68a 100644 --- a/main.mk +++ b/main.mk @@ -348,6 +348,7 @@ TESTSRC = \ $(TOP)/src/test_tclsh.c \ $(TOP)/src/test_tclvar.c \ $(TOP)/src/test_thread.c \ + $(TOP)/src/test_vdbecov.c \ $(TOP)/src/test_vfs.c \ $(TOP)/src/test_windirent.c \ $(TOP)/src/test_window.c \ @@ -377,7 +378,6 @@ TESTSRC += \ $(TOP)/ext/misc/totype.c \ $(TOP)/ext/misc/unionvtab.c \ $(TOP)/ext/misc/wholenumber.c \ - $(TOP)/ext/misc/vfslog.c \ $(TOP)/ext/misc/zipfile.c \ $(TOP)/ext/fts5/fts5_tcl.c \ $(TOP)/ext/fts5/fts5_test_mi.c \ @@ -715,12 +715,9 @@ opcodes.h: parse.h $(TOP)/src/vdbe.c $(TOP)/tool/mkopcodeh.tcl # parse.h: parse.c -parse.c: $(TOP)/src/parse.y lemon $(TOP)/tool/addopcodes.tcl +parse.c: $(TOP)/src/parse.y lemon cp $(TOP)/src/parse.y . - rm -f parse.h ./lemon -s $(OPTS) parse.y - mv parse.h parse.h.temp - tclsh $(TOP)/tool/addopcodes.tcl parse.h.temp >parse.h sqlite3.h: $(TOP)/src/sqlite.h.in $(TOP)/manifest mksourceid $(TOP)/VERSION $(TOP)/ext/rtree/sqlite3rtree.h tclsh $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h diff --git a/manifest b/manifest index 54a6ebddd1..d0c2842b95 100644 --- a/manifest +++ b/manifest @@ -1,12 +1,13 @@ -C Version\s3.27.2 -D 2019-02-25T16:06:06.705 +C Version\s3.28.0 +D 2019-04-16T19:49:53.412 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea -F Makefile.in 178d8eb6840771149cee40b322d1b3be30d330198c522c903c1b66fb5a1bfca4 +F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 +F Makefile.in 4640daf826b80947a924ac44275c451ffc13007c7c866a5730c8ce5cf9e1dc74 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 -F Makefile.msc 5df60c70edb157feb2148a14c687551969599bd065875a0b959b6b139721ca72 -F README.md 377233394b905d3b2e2b33741289e093bc93f2e7adbe00923b2c5958c9a9edee -F VERSION a45c4d2eb2f9c1432c4e49d9306ccb0cd3f88dccddfa52ea1fe7460ce005e58a +F Makefile.msc 26957950b2b4f3b26e311eeea70437f85a77765f71d3a06489466d66ee321100 +F README.md 74745e53db87fdc86f571dd7ec1bd18e154d0abd6d37d2292a1062e931318a29 +F VERSION 288d756b1b7be03ecdbf1795c23af2c8425f2e46ba6979a14ef53360308f080d F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90 @@ -14,7 +15,7 @@ F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903 F autoconf/Makefile.am e14b629addaa1ce372b72043f28f40de2e32b7e211b6e0fc18dbb87989197e40 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac -F autoconf/Makefile.msc ee8ab2b6b5d712f68acc4c186e3fad7b831b87a2b118e0a123043ea8a2c8b016 +F autoconf/Makefile.msc bea737cb2ed8802056ff44947c4963026307caff4d7382b9622e7928990a4a18 F autoconf/README.first 6c4f34fe115ff55d4e8dbfa3cecf04a0188292f7 F autoconf/README.txt 4f04b0819303aabaa35fff5f7b257fb0c1ef95f1 F autoconf/configure.ac 308de24343e76ecfbe9a67f8fcd4c5216b790d230c5d9ce10210b7d5965d6192 @@ -33,7 +34,7 @@ F autoconf/tea/win/rules.vc c511f222b80064096b705dbeb97060ee1d6b6d63 F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977 F config.h.in 6376abec766e9a0785178b1823b5a587e9f1ccbc F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55 -F configure 7fd4706775d3c31e928d3e94bcfca5150a60d5abfc6a36a20fa43ad66dc4d467 x +F configure b013bf805064650b072817c7c7f0a295cfcec5b1afec15e59ea4e9996543f51e x F configure.ac 3552d3aecade98a9d4b64bceb48ffb7726cbc85902efde956812942f060fbd0a F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad F doc/F2FS.txt c1d4a0ae9711cfe0e1d8b019d154f1c29e0d3abfe820787ba1e9ed7691160fcd @@ -78,9 +79,9 @@ F ext/fts2/fts2_tokenizer1.c 07e223eecb483d448313b5f1553a4f299a7fb7a1 F ext/fts2/mkfts2amal.tcl 974d5d438cb3f7c4a652639262f82418c1e4cff0 F ext/fts3/README.content fdc666a70d5257a64fee209f97cf89e0e6e32b51 F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a -F ext/fts3/README.tokenizers e0a8b81383ea60d0334d274fadf305ea14a8c314 +F ext/fts3/README.tokenizers b92bdeb8b46503f0dd301d364efc5ef59ef9fa8e2758b8e742f39fa93a2e422d F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d -F ext/fts3/fts3.c 5da1329ccf66b6d597dfb16b1f81aa204133c1ec96117d82a59c20126f483b17 +F ext/fts3/fts3.c 33958a8c05a6c22bf559fedb1176ad1f313a7b42ccf5f0c0bcc8a88609e58d60 F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe F ext/fts3/fts3Int.h 74384e28b778a057f1467529715668b98f3f12f52eeb564fd6ae1e894125c00c F ext/fts3/fts3_aux.c 96708c8b3a7d9b8ca1b68ea2b7e503e283f20e95f145becadedfad096dbd0f34 @@ -89,46 +90,46 @@ F ext/fts3/fts3_hash.c 8b6e31bfb0844c27dc6092c2620bdb1fca17ed613072db057d96952c6 F ext/fts3/fts3_hash.h 39cf6874dc239d6b4e30479b1975fe5b22a3caaf F ext/fts3/fts3_icu.c 305ce7fb6036484085b5556a9c8e62acdc7763f0f4cdf5fd538212a9f3720116 F ext/fts3/fts3_porter.c 3565faf04b626cddf85f03825e86056a4562c009 -F ext/fts3/fts3_snippet.c ac1f8945375d07076b7178de1fe549982e6ae6f050095e7f7e400ec4448f31df -F ext/fts3/fts3_term.c 12f7b2318f1254e6cc46dd306e5f2ac5b00b06d6761f5cae09fee5e1817cc32a -F ext/fts3/fts3_test.c b6e9f3fd7155cb388c6bc203fb24817a721fb61d9ce28810c73fcfda8c16fda6 -F ext/fts3/fts3_tokenize_vtab.c 969c132816b6f46ee2c7efafd2547a9bfd50b0aac3f8cef3f2dca2cbd90639c7 -F ext/fts3/fts3_tokenizer.c a22bf311a71f3efa9d7012d8cc48fc9b0f3dace7 +F ext/fts3/fts3_snippet.c 2f3a78b990f1c8658225618c8a0fa06ab60046688d6fb627a548e8ada9011150 +F ext/fts3/fts3_term.c f45a1e7c6ef464abb1231245d123dae12266b69e05cc56e14045b76591ae92d1 +F ext/fts3/fts3_test.c 73b16e229e517c1b1f0fb8e1046182a4e5dbc8dbe6eea8a5d4353fcce7dbbf39 +F ext/fts3/fts3_tokenize_vtab.c 1de9a61acfa2a0445ed989310c31839c57f6b6086dd9d5c97177ae734a17fd8b +F ext/fts3/fts3_tokenizer.c 8034a5604c31559493fef0fed432cb251a566c46043c0b2c11b92c740e6f036f F ext/fts3/fts3_tokenizer.h 64c6ef6c5272c51ebe60fc607a896e84288fcbc3 F ext/fts3/fts3_tokenizer1.c 5c98225a53705e5ee34824087478cf477bdb7004 F ext/fts3/fts3_unicode.c 4b9af6151c29b35ed09574937083cece7c31e911f69615e168a39677569b684d F ext/fts3/fts3_unicode2.c 416eb7e1e81142703520d284b768ca2751d40e31fa912cae24ba74860532bf0f -F ext/fts3/fts3_write.c 45cbe0b06221f5debefe37f8f9882cf0401592668cb76624a64c0f3f185115de +F ext/fts3/fts3_write.c 1d814248a42ddecc6ebd8d9e09673228de2ff5ae1410b8b7f1b22e04b7299fdf F ext/fts3/fts3speed.tcl b54caf6a18d38174f1a6e84219950d85e98bb1e9 F ext/fts3/mkfts3amal.tcl 252ecb7fe6467854f2aa237bf2c390b74e71f100 F ext/fts3/tool/fts3cov.sh c331d006359456cf6f8f953e37f2b9c7d568f3863f00bb5f7eb87fea4ac01b73 F ext/fts3/tool/fts3view.c 202801a2056995b763864d60c2dee744d46f1677 F ext/fts3/unicode/CaseFolding.txt 8c678ca52ecc95e16bc7afc2dbf6fc9ffa05db8c F ext/fts3/unicode/UnicodeData.txt cd07314edb62d49fde34debdaf92fa2aa69011e7 -F ext/fts3/unicode/mkunicode.tcl 49499f7964504438e2b04cca0627827945bb2499154e2d3ec216b22d20b969ae +F ext/fts3/unicode/mkunicode.tcl bf7fcaa6d68e6d38223467983785d054f1cff4d9e3905dd51f6ed8801bb590d5 F ext/fts3/unicode/parseunicode.tcl a981bd6466d12dd17967515801c3ff23f74a281be1a03cf1e6f52a6959fc77eb F ext/fts5/extract_api_docs.tcl a36e54ec777172ddd3f9a88daf593b00848368e0 -F ext/fts5/fts5.h fed314270c1a61de3a0e373b11c2f8228b1c76ce59447dd96d0b6fae7d66399b -F ext/fts5/fts5Int.h 0b002fc71ea705d2c4ec66a63ecd38a2c11127e5b52239b5d71d1dd28309fc19 -F ext/fts5/fts5_aux.c afe8c2394cf6de2a48f278442f4f4342365bf99a5983709ef8e6955c2cf4daf9 -F ext/fts5/fts5_buffer.c 2e750cd4c0d456d4e1a8dcc649382708422b535dc32b375fd3d3306fb9727046 -F ext/fts5/fts5_config.c eeec97cb0237991e7fa3bbae07b5cc354e3f238b661200c11228fe167c18f882 -F ext/fts5/fts5_expr.c 188d1dca5a262a0708efc5deb809f1aa6ecea4158986a439d2670cfe72d10b65 -F ext/fts5/fts5_hash.c d415f5ad332b051f0ade564bcf1762c4467cc49b2ba8ea5873d8744c705d8d42 -F ext/fts5/fts5_index.c ffff7e8d41594256cacf7b32072f8bc06478a86026196a7eb084450065df8d92 -F ext/fts5/fts5_main.c 95d63bbe6075955961e56878c3a8705dc475c2b17f5c767f7b8af14093ae614b -F ext/fts5/fts5_storage.c 57e3f2b1a612961a27c944d6b8821028ec5fdb541d7e6b841785003ac3b0b43a +F ext/fts5/fts5.h 7c9da96f2b9dcfa4dd94081fb2d87ec418d8cdb35b25df56756c334b6b558fd7 +F ext/fts5/fts5Int.h 5c26dce0ec9272fca726c6fddb92f634d0c912d4ca170330270d488a94b80416 +F ext/fts5/fts5_aux.c dcc627d8b6e3fc773db528ff67b39955dab7b51628f9dba8e15849e5bedfd7fa +F ext/fts5/fts5_buffer.c 7d91caa0d862079d787660ec405d2fda6fd4f206d95b870dc7adc3b8f66a400f +F ext/fts5/fts5_config.c d7523cba5e66da077233c023aecbc3e6a37978ff75a18131c5ab5b1229d5bac7 +F ext/fts5/fts5_expr.c 840c88d55e78083a5e61a35968df877712ae28791b347eced1e98e3b337d2d3c +F ext/fts5/fts5_hash.c 1cc0095646f5f3b46721aa112fb4f9bf29ae175cb5338f89dcec66ed97acfe75 +F ext/fts5/fts5_index.c 9146da94d0b9f62217c6ad234342fda3fbac3c254455d0b3f53957ad85262e08 +F ext/fts5/fts5_main.c abd04720e2729ba5bab2648d9d541faab18f45d481ae21fc30f125b55e979d6b +F ext/fts5/fts5_storage.c b24f6916fcdd68989a549f25962f286bdba9d9d59c7581567a6a0eb647cd07cc F ext/fts5/fts5_tcl.c 39bcbae507f594aad778172fa914cad0f585bf92fd3b078c686e249282db0d95 F ext/fts5/fts5_test_mi.c 08c11ec968148d4cb4119d96d819f8c1f329812c568bac3684f5464be177d3ee F ext/fts5/fts5_test_tok.c f96c6e193c466711d6d7828d5f190407fe7ab897062d371426dd3036f01258e7 -F ext/fts5/fts5_tokenize.c 4d904c237707de8fbb8ab98d24d5c55d47204a3f1f35895d8a53a5327079b32c -F ext/fts5/fts5_unicode2.c d8a1528c9a19f79b843c486e5e64bff17d667791ae7f658e11131ebac4b33c59 +F ext/fts5/fts5_tokenize.c 2e508c6a3bd8ee56c48e98a38052e1a650e49b32a484cce9b189984114bc3b88 +F ext/fts5/fts5_unicode2.c 8bd0cd07396b74c1a05590e4070d635bccfc849812c305619f109e6c0485e250 F ext/fts5/fts5_varint.c e64d2113f6e1bfee0032972cffc1207b77af63319746951bf1d09885d1dadf80 F ext/fts5/fts5_vocab.c 906dff069840347e68f654b12ca60a53a27cd1780daf155fbe7dd331f27c2329 F ext/fts5/fts5parse.y eb526940f892ade5693f22ffd6c4f2702543a9059942772526eac1fde256bb05 F ext/fts5/mkportersteps.tcl 5acf962d2e0074f701620bb5308155fa1e4a63ba F ext/fts5/test/fts5_common.tcl b01c584144b5064f30e6c648145a2dd6bc440841 -F ext/fts5/test/fts5aa.test 1706f816308e5855fe493be85aa0fd28eea78fb163ab1d60a20bca4f0ebcf68d +F ext/fts5/test/fts5aa.test 5bd43427b7d08ce2e19c488a26534be450538b9232d4d5305049e8de236e9aa9 F ext/fts5/test/fts5ab.test 9205c839332c908aaad2b01ab8670ece8b161e8f2ec8a9fabf18ca9385880bb7 F ext/fts5/test/fts5ac.test a7aa7e1fefc6e1918aa4d3111d5c44a09177168e962c5fd2cca9620de8a7ed6d F ext/fts5/test/fts5ad.test e8cf959dfcd57c8e46d6f5f25665686f3b6627130a9a981371dafdf6482790de @@ -142,7 +143,7 @@ F ext/fts5/test/fts5ak.test fc3595f8e6873bb86d70c9bd4b67d0413ce577bd4793c39a2b60 F ext/fts5/test/fts5al.test 00c4c1c6a1366b73aa48ce2068c634520867c3cf7f5d1676ebbb775ee1f35734 F ext/fts5/test/fts5alter.test 5565f7e4605512b69171ac18ca84398603f9f6456dbe377beeca97e83cc242cd F ext/fts5/test/fts5auto.test 78989e6527ce69c9eddbef7392fea5c10b0010cd2b2ae68eec7bc869c471e691 -F ext/fts5/test/fts5aux.test 8e7f9c96f8570f48402f2fd7b74e1ccfadd319fa56ef677321880000f9739846 +F ext/fts5/test/fts5aux.test ebf6f2ff7cb556e83f66991b7f12bff016d3c83d4eab36704b649dd6b1437318 F ext/fts5/test/fts5auxdata.test eacc97ff04892f1a5f3d4df5a73f8bcbc3955ea1d12c9f24137eb1fc079e7611 F ext/fts5/test/fts5bigpl.test 6466c89b38439f0aba26ac09e232a6b963f29b1cbe1304f6a664fe1e7a8f5fd3 F ext/fts5/test/fts5bigtok.test 541119e616c637caea925a8c028c37c2c29e94383e00aa2f9198d530724b6e36 @@ -156,7 +157,7 @@ F ext/fts5/test/fts5connect.test 08030168fc96fc278fa81f28654fb7e90566f33aff269c0 F ext/fts5/test/fts5content.test 688d5ac7af194ebc67495daea76a69e3cd5480122c2320e72d41241b423b4116 F ext/fts5/test/fts5corrupt.test 77ae6f41a7eba10620efb921cf7dbe218b0ef232b04519deb43581cb17a57ebe F ext/fts5/test/fts5corrupt2.test 7453752ba12ce91690c469a6449d412561cc604b1dec994e16ab132952e7805f -F ext/fts5/test/fts5corrupt3.test 4c506a138797d23049bf08552b4571f5beb5138ab7b3329b9210fe5aac8796d2 +F ext/fts5/test/fts5corrupt3.test d3a07e6fe172ade03310af6056cae45ac3d2880a9bba187908eba735bd170742 F ext/fts5/test/fts5delete.test cbf87e3b8867c4d5cfcaed975c7475fd3f99d072bce2075fcedf43d1f82af775 F ext/fts5/test/fts5detail.test 31b240dbf6d44ac3507e2f8b65f29fdc12465ffd531212378c7ce1066766f54e F ext/fts5/test/fts5determin.test 1b77879b2ae818b5b71c859e534ee334dac088b7cf3ff3bf76a2c82b1c788d11 @@ -273,20 +274,22 @@ F ext/lsm1/test/lsm1_common.tcl 5ed4bab07c93be2e4f300ebe46007ecf4b3e20bc5fbe1ded F ext/lsm1/test/lsm1_simple.test ca949efefa102f4644231dcd9291d8cda7699a4ce1006b26e0e3fcb72233f422 F ext/lsm1/tool/mklsm1c.tcl f31561bbee5349f0a554d1ad7236ac1991fc09176626f529f6078e07335398b0 F ext/misc/README.md d6dd0fe1d8af77040216798a6a2b0c46c73054d2f0ea544fbbcdccf6f238c240 -F ext/misc/amatch.c cc9835931fbe46f9c6b8dbb51779c16f169bee50ae372a20532ff5154ebaf5b1 +F ext/misc/amatch.c 50a9ef2d38dabfa371f8c1904097d493271e63d58ccb0e9b79a4fa4a94e66660 F ext/misc/anycollseq.c 5ffdfde9829eeac52219136ad6aa7cd9a4edb3b15f4f2532de52f4a22525eddb F ext/misc/appendvfs.c 3777f22ec1057dc4e5fd89f2fbddcc7a29fbeef1ad038c736c54411bb1967af7 +F ext/misc/blobio.c 085bbfa57ea58bb15d994ba4cd397bff6f0c38c4f618adbc62cf4d3780e5d88a F ext/misc/btreeinfo.c 4f0ebf278f46e68e6306c667917766cebc5550fd35d5de17847988e22892d4d2 F ext/misc/carray.c ed96c218ea940b85c9a274c4d9c59fe9491c299147a38a8bba537687bd6c6005 -F ext/misc/closure.c 037d055c5a4880d41607a3ea44037f655b5e8ac1bdce305ec497903fd2646960 +F ext/misc/closure.c dbfd8543b2a017ae6b1a5843986b22ddf99ff126ec9634a2f4047cd14c85c243 F ext/misc/completion.c cec672d40604075bb341a7f11ac48393efdcd90a979269b8fe7977ea62d0547f F ext/misc/compress.c dd4f8a6d0baccff3c694757db5b430f3bbd821d8686d1fc24df55cf9f035b189 F ext/misc/csv.c 7f047aeb68f5802e7ce6639292095d622a488bb43526ed04810e0649faa71ceb F ext/misc/dbdump.c baf6e37447c9d6968417b1cd34cbedb0b0ab3f91b5329501d8a8d5be3287c336 F ext/misc/eval.c 4b4757592d00fd32e44c7a067e6a0e4839c81a4d57abc4131ee7806d1be3104e F ext/misc/explain.c d5c12962d79913ef774b297006872af1fccda388f61a11d37758f9179a09551f -F ext/misc/fileio.c 592d6531d8413d81b25f5a47a45d7e310e455d33e03a64c6ae85724c6524a5d5 -F ext/misc/fuzzer.c 9e79c337faffdd4c5fe4485467537438359b43e0858a40038d4300b894ff553f +F ext/misc/fileio.c 288e7230e0fe464d71b0694e2d8bdd3a353118ac2e31da3964b95f460f09915f +F ext/misc/fossildelta.c 910510968a30ab77b8ac1a27931f2cb834e9db9fd5ab122f53b6045b4315665d +F ext/misc/fuzzer.c c4e27daf41433a64cad5265cd27dbcb891147e9994d0422200ce81ce9a54b625 F ext/misc/ieee754.c f190d0cc5182529acb15babd177781be1ac1718c F ext/misc/json1.c 8af4672f43634257dbcfdb4515b4070325463d67c6968b4be1bd414de28d4d58 F ext/misc/memstat.c 3017a0832c645c0f8c773435620d663855f04690172316bd127270d1a7523d4d @@ -295,7 +298,7 @@ F ext/misc/memvfs.c ab36f49e02ebcdf85a1e08dc4d8599ea8f343e073ac9e0bca18a98b7e1ec F ext/misc/mmapwarm.c 8c5fe90d807a23e44a8b93e96e8b812b19b300d5fd8c1d40a4fd1d8224e33f46 F ext/misc/nextchar.c 279f80fe8ef5ba413242e2704e246503ac601f005eefb180d19e6c920338a0ba F ext/misc/normalize.c b4290464f542bae7a97b43f15bd197949b833ffd668b7c313631bd5d4610212c -F ext/misc/percentile.c a6a1594c104da2d0ceab38fe609eb2f65529272377827f6f8a2b5c9fa6119e7e +F ext/misc/percentile.c 148dd07286b16e50f232bb638a47850085ad37d51f270429905bd865e595d1ca F ext/misc/prefixes.c 7be86d17525cfae6ed462fc3c519efc44488ac329890f77491c8f82871f57e17 F ext/misc/regexp.c 79345bf03496155a640ee0300d3307296761cebb5e115b4e342cc2fb5861ec10 F ext/misc/remember.c add730f0f7e7436cd15ea3fd6a90fd83c3f706ab44169f7f048438b7d6baa69c @@ -310,9 +313,9 @@ F ext/misc/sqlar.c 57d5bc45cd5492208e451f697404be88f8612527d64c9d42f96b325b64983 F ext/misc/stmt.c 8a8dc4675042e4551e4afe99b8d0cc7a4a2fc1a8dacc0a9ce1b1bbff145da93d F ext/misc/templatevtab.c 8a16a91a5ceaccfcbd6aaaa56d46828806e460dd194965b3f77bf38f14b942c4 F ext/misc/totype.c 4a167594e791abeed95e0a8db028822b5e8fe512 -F ext/misc/unionvtab.c 34ee634d09670909563dbde59c5bfb2ac048b27051f65f1aeac918b061d646d8 +F ext/misc/unionvtab.c 36237f0607ca954ac13a4a0e2d2ac40c33bc6e032a5f55f431713061ef1625f9 F ext/misc/vfslog.c 3b25c2f56ba60788db247287be6ab024b53c4afffd412b4876db563389be0d35 -F ext/misc/vfsstat.c bf10ef0bc51e1ad6756629e1edb142f7a8db1178 +F ext/misc/vfsstat.c 77b5b4235c9f7f11eddf82487c0a422944ac2f132dafd5af3be7a68a057b1cdb F ext/misc/vtablog.c 5538acd0c8ddaae372331bee11608d76973436b77d6a91e8635cfc9432fba5ae F ext/misc/vtshim.c 1976e6dd68dd0d64508c91a6dfab8e75f8aaf6cd F ext/misc/wholenumber.c 784b12543d60702ebdd47da936e278aa03076212 @@ -346,6 +349,7 @@ F ext/rbu/rbufault3.test e0052ccba428ffdd2bb989d3ae84716f058ec5ab5f7196c64ba407b F ext/rbu/rbufault4.test 03d2849c3df7d7bd14a622e789ff049e5080edd34a79cd432e01204db2a5930a F ext/rbu/rbufts.test 0ae8d1da191c75bd776b86e24456db0fb6e97b7c944259fae5407ea55d23c31d F ext/rbu/rbumulti.test 5fb139058f37ddc5a113c5b93238de915b769b7792de41b44c983bc7c18cf5b9 +F ext/rbu/rbupartial.test 73baf12a5941fe6891a829106a6f2e0a973f89aa49bd8659b12f547beb29b482 F ext/rbu/rbuprogress.test 04614ff8820bab9c1ec1b7dbec1edc4b45474421d4fe7abbd2a879a9c02884f9 F ext/rbu/rburesume.test dbdc4ca504e9c76375a69e5f0d91205db967dcc509a5166ca80231f8fda49eb1 F ext/rbu/rbusave.test f4190a1a86fccf84f723af5c93813365ae33feda35845ba107b59683d1cdd926 @@ -354,7 +358,7 @@ F ext/rbu/rbutemplimit.test 7f408f49b90fa0a720d7599f3aec74a3c85e6cd78e56fdf726ce F ext/rbu/rbuvacuum.test 55e101e90168c2b31df6c9638fe73dc7f7cc666b6142266d1563697d79f73534 F ext/rbu/rbuvacuum2.test b8e5b51dc8b2c0153373d024c0936be3f66f9234acbd6d0baab0869d56b14e6b F ext/rbu/rbuvacuum3.test 8addd82e4b83b4c93fa47428eae4fd0dbf410f8512c186f38e348feb49ba03dc -F ext/rbu/sqlite3rbu.c d643661c7c85e79f4d0bc56c73f6f2dd55c35732dd41f378b0fd3b182a33242d +F ext/rbu/sqlite3rbu.c f222350c33f063cbc754001cd4e9683164c6cb06be76ae43f15b396ec6fc1993 F ext/rbu/sqlite3rbu.h 1dc88ab7bd32d0f15890ea08d23476c4198d3da3056985403991f8c9cd389812 F ext/rbu/test_rbu.c 03f6f177096a5f822d68d8e4069ad8907fe572c62ff2d19b141f59742821828a F ext/repair/README.md 92f5e8aae749a4dae14f02eea8e1bb42d4db2b6ce5e83dbcdd6b1446997e0c15 @@ -367,8 +371,8 @@ F ext/repair/test/checkfreelist01.test 3e8aa6aeb4007680c94a8d07b41c339aa635cc782 F ext/repair/test/checkindex01.test b530f141413b587c9eb78ff734de6bb79bc3515c335096108c12c01bddbadcec F ext/repair/test/test.tcl 686d76d888dffd021f64260abf29a55c57b2cedfa7fc69150b42b1d6119aac3c F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761 -F ext/rtree/geopoly.c 061432bddc38c4c10c7e4ce940d581c886d65bb5814b4b65b46ad046aa85eaa2 -F ext/rtree/rtree.c 57729cc19f3832e5f9051556af44ed264b5bd54b01543cd7e50d5143817b964c +F ext/rtree/geopoly.c c591164125808f8bba9659e92665b78412cd263e654b6f05294f3a8da7cdd9fb +F ext/rtree/rtree.c f2ce90120f3e2e01f8a510a227cafbea224c08ba2bf6809b0139c671de2873dc F ext/rtree/rtree.h 4a690463901cb5e6127cf05eb8e642f127012fd5003830dbc974eca5802d9412 F ext/rtree/rtree1.test 7573134f1b4f59df36c1b0a6de51268fd3b9c714d91f3811482263e734e416ea F ext/rtree/rtree2.test 5f25b01acd03470067a2d52783b2eb0a50bf836803d4342d20ca39e541220fe2 @@ -398,8 +402,8 @@ F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de F ext/rtree/util/randomshape.tcl 54ee03d0d4a1c621806f7f44d5b78d2db8fac26e0e8687c36c4bd0203b27dbff F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024 F ext/rtree/visual01.txt e9c2564083bcd30ec51b07f881bffbf0e12b50a3f6fced0c222c5c1d2f94ac66 -F ext/session/changeset.c d046906a0c9a37862fcd5dbfda5eb08dea361b9abdd959b34358a63fa246164f -F ext/session/changesetfuzz.c 01023c41cfb02e191d144ea8bfdc46443393b62d13873f5fa044fc9886e60142 +F ext/session/changeset.c 7a1e6a14c7e92d36ca177e92e88b5281acd709f3b726298dc34ec0fb58869cb5 +F ext/session/changesetfuzz.c 227076ab0ae4447d742c01ee88a564da6478bbf26b65108bf8fac9cd8b0b24aa F ext/session/changesetfuzz1.test 2e1b90d888fbf0eea5e1bd2f1e527a48cc85f8e0ff75df1ec4e320b21f580b3a F ext/session/session1.test 0b2f88995832ea040ae8e83a1ad4afa99c00b85c779d213da73a95ea4113233e F ext/session/session2.test 284de45abae4cc1082bc52012ee81521d5ac58e0 @@ -410,7 +414,7 @@ F ext/session/session6.test 443789bc2fca12e4f7075cf692c60b8a2bea1a26 F ext/session/session8.test 8e194b3f655d861ca36de5d4de53f702751bab3b F ext/session/session9.test 5409d90d8141881d08285ed1c2c0d8d10fb92069 F ext/session/sessionA.test 1feeab0b8e03527f08f2f1defb442da25480138f -F ext/session/sessionB.test 886252dcb7e692e62ef7e357456200912e367823 +F ext/session/sessionB.test c4fb7f8a688787111606e123a555f18ee04f65bb9f2a4bb2aa71d55ce4e6d02c F ext/session/sessionC.test f8a5508bc059ae646e5ec9bdbca66ad24bc92fe99fda5790ac57e1f59fce2fdf F ext/session/sessionD.test 4f91d0ca8afc4c3969c72c9f0b5ea9527e21de29039937d0d973f821e8470724 F ext/session/sessionE.test b2010949c9d7415306f64e3c2072ddabc4b8250c98478d3c0c4d064bce83111d @@ -427,8 +431,8 @@ F ext/session/sessioninvert.test ae1a003a9ab1f8d64227dbb5c3a4c97e65b561b01e7b295 F ext/session/sessionrebase.test ccfa716b23bd1d3b03217ee58cfd90c78d4b99f53e6a9a2f05e82363b9142810 F ext/session/sessionstat1.test 218d351cf9fcd6648f125a26b607b140310160184723c2666091b54450a68fb5 F ext/session/sessionwor.test 67b5ab91d4f93ce65ff1f58240ac5ddf73f8670facc1ffa49cef56293d52818d -F ext/session/sqlite3session.c 4c79daf65e89c78dd62fd97a1b2eac3e53be700b29914101453a0d951f7ba9c8 -F ext/session/sqlite3session.h 54d6356f5769d3695e5f63d719c6ee27671b2614973a2b675a3ff4d30d574233 +F ext/session/sqlite3session.c 12c958dcd093fca229ca3d3fd833f2f99f1d9c70093dca60f697d5f8e20ebde1 +F ext/session/sqlite3session.h 919be6649d39d6413ce7a63fc3e3bca3270e18bc2d57ad4040a70007b9e54397 F ext/session/test_session.c 98797aba475a799376c9a42214f2d1debf2d0c3cb657d9c8bbf4f70bf3fb4aec F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3 F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04 @@ -436,7 +440,7 @@ F ext/userauth/userauth.c f81aa5a3ecacf406f170c62a144405858f6f6de51dbdc0920134e6 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60 -F main.mk 3930eb2fcbebe49ab7408f6fef3baa8c4bf3c84540f9f29dfe849bf561ff6e51 +F main.mk 23d3660f7053d196aef76938bf78b10fc3ce1831a85d96bd71565758788f34d4 F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504 @@ -448,17 +452,17 @@ F spec.template 86a4a43b99ebb3e75e6b9a735d5fd293a24e90ca F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a -F src/alter.c cb691d6cd330312b7951c9d3bc0bc29804bbe80beac1cdd137d824b119b6f28a +F src/alter.c 25f54387121a0c5fd0f49b299f4070c81af8f26a84edaae6de679c4e4b71b1ff F src/analyze.c 58db66344a5c58dcabb57f26696f6f2993956c830446da40b444051d2fdaf644 -F src/attach.c 3f9b0f6c79500cc40f4e543bc130a0b4ee13f52b45cbb6735608776cbdb79f0e +F src/attach.c 78e986baee90cb7b83fb9eafa79c22581a8ada14030fd633b0683c95cf11213c F src/auth.c 0fac71038875693a937e506bceb492c5f136dd7b1249fbd4ae70b4e8da14f9df F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c 84b7c5c3829b60823e15e7a8407462b69be3818f96518fef28f97ac0fbbca72b -F src/btree.h 63b94fb38ce571c15eb6a3661815561b501d23d5948b2d1e951fbd7a2d04e8d3 -F src/btreeInt.h cd82f0f08886078bf99b29e1a7045960b1ca5d9d5829c38607e1299c508eaf00 -F src/build.c 906ca6663b9dcd413e72ae9c44dd51e596d8336b04d52e678a7501e71c20cab2 +F src/btree.c 958939f608e351a36756e3749596472baa0e5aae54eebd14e6beffe7a68aafc7 +F src/btree.h c11446f07ec0e9dc85af8041cb0855c52f5359c8b2a43e47e02a685282504d89 +F src/btreeInt.h 6111c15868b90669f79081039d19e7ea8674013f907710baa3c814dc3f8bfd3f +F src/build.c 61655dad911a967a69fb49df57268fd15ce8f1af3fe0a1bd90c128ef2cacfb7a F src/callback.c 25dda5e1c2334a367b94a64077b1d06b2553369f616261ca6783c48bcb6bda73 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e F src/ctime.c 109e58d00f62e8e71ee1eb5944ac18b90171c928ab2e082e058056e1137cc20b @@ -466,20 +470,20 @@ F src/date.c ebe1dc7c8a347117bb02570f1a931c62dd78f4a2b1b516f4837d45b7d6426957 F src/dbpage.c 135eb3b5e74f9ef74bde5cec2571192c90c86984fa534c88bf4a055076fa19b7 F src/dbstat.c c12833de69cb655751487d2c5a59607e36be1c58ba1f4bd536609909ad47b319 F src/delete.c d08c9e01a2664afd12edcfa3a9c6578517e8ff8735f35509582693adbe0edeaf -F src/expr.c f2d0ecf68213770be4fad83128ce02e67667deebaa0a44061313f7e4f2a4ae28 +F src/expr.c e100212835d20498780e7c6d2bdb16c677ecc04350fb75db3bf192a86ba48c92 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c bd0138acdc008c1845ccf92f8e73787880562de649471804801c06fed814c765 -F src/func.c 0341881d22903aac5ba7f352b188806d6436e1d6ae4235ff01e44d56879dfe63 +F src/func.c 2ccf4ae12430b1ae7096be5f0675887e1bd0732828af0ac0f7496339b7c6edee F src/global.c 0dea3065ea72a65ae941559b6686aad6516d4913e76fa4f79a95ff7787f624ec -F src/hash.c a12580e143f10301ed5166ea4964ae2853d3905a511d4e0c44497245c7ce1f7a -F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4 +F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19 +F src/hash.h 9d56a9079d523b648774c1784b74b89bd93fac7b365210157482e4319a468f38 F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71 -F src/insert.c 7b71ba94e3283b497c076068fdeea760ce93b9db7d6784bdf5404fc842b721e5 +F src/insert.c fc3cf5c371f9a400144e8c2f148ab29cd3f67f7da7eaf47e6a6959f8255fd92c F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa -F src/loadext.c e6f10875d52aca3b7e57ce1ec174aeafc9b6c00b43000cd30d791f9cb490b7a6 -F src/main.c 27d7265625ea6eaccdfe7c53ef41adc179c9357a077702a860c1a3b0a037a16f -F src/malloc.c 07295435093ce354c6d9063ac05a2eeae28bd251d2e63c48b3d67c12c76f7e18 +F src/loadext.c 22afc33c3a61b4fd80a60a54f1882688371e6bc64685df2696b008fce65a999c +F src/main.c 16eea1ab004331312da0538dafb497cc0ed82fd9bb2e67f7684b40bf2797b666 +F src/malloc.c 0f9da2a66b230a5785af94b9672126845099b57b70a32c987d04ac28c69da990 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3 @@ -501,33 +505,33 @@ F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586 F src/os_unix.c f6e91b8fd82af7afbfd073c4974ad6cdb8e62d9f65ceddb45167835a0567fdc0 F src/os_win.c 85d9e532d0444ab6c16d7431490c2e279e282aa0917b0e988996b1ae0de5c5a0 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a -F src/pager.c 857dde3e525f665cfab23b6765bf04ca6638c0759ae7da6d63acfb463e230aa6 +F src/pager.c 422fd8cfa59fb9173eff36a95878904a0eeb0dcc62ba49350acc8b1e51c4dc7b F src/pager.h 217921e81eb5fe455caa5cda96061959706bcdd29ddb57166198645ef7822ac3 -F src/parse.y 741a270b7f2f85bc5d026d06fb5a9ccba5335304ff2831e1cb44b36cd0da6006 +F src/parse.y 8de9b1da4dc0f9615cfa9f4cbdd368b4ac822e1cbbc57b0fe071d9a83988df6d F src/pcache.c 696a01f1a6370c1b50a09c15972bc3bee3333f8fcd1f2da8e9a76b1b062c59ee F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586 -F src/pcache1.c a72804486dfa8e4b6bc30d666c97ecf1155f91a4351fc6e48ea4097e4eb304fb +F src/pcache1.c be64b2f3908a7f97c56c963676eb12f0d6254c95b28cdc1d73a186eff213219d F src/pragma.c af67dedaad8bafe9a5f9adcec32a0da6dd118617dd8220ad1d118f5a6bf83a02 F src/pragma.h a776bb9c915207e9d1117b5754743ddf1bf6a39cc092a4a44e74e6cb5fab1177 F src/prepare.c 78027c6231fbb19ca186a5f5f0c0a1375d9c2cec0655273f9bd90d9ff74a34b3 -F src/printf.c cbf27c320091a83279d1738f68a27a9fe01698c607ce80516ab6bdb5a9c36a1a +F src/printf.c 67f79227273a9009d86a017619717c3f554f50b371294526da59faa6014ed2cd F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384 -F src/resolve.c dd7550ed05486c49c2b467b46ef37c78cdf6bf9df3b15134816d081691fd42d1 +F src/resolve.c 567888ee3faec14dae06519b4306201771058364a37560186a3e0e755ebc4cb8 F src/rowset.c d977b011993aaea002cab3e0bb2ce50cf346000dff94e944d547b989f4b1fe93 -F src/select.c c998f694759e37799929e28df8a2649747f8774d4fc233529ab6bda689388e15 -F src/shell.c.in f2c1adbee3f6f36686b4a38d2168ebfc25298b4ad1e6d95199fc4e95b539251d -F src/sqlite.h.in 8859e0b45b48d4186fbc466885e508f8272420a349099acdebcdb8d410d54824 +F src/select.c 9263f5c30dd44c7ac2eb29f40a7ec64322a96885b71c00de6bc30b756c2e1c49 +F src/shell.c.in c1986496062f9dba4ed5b70db06b5e0f32e1954cdcfab0b30372c6c186796810 +F src/sqlite.h.in 38390767acc1914d58930e03149595ee4710afa4e3c43ab6c3a8aea3f1a6b8cd F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 -F src/sqlite3ext.h 960f1b86c3610fa23cb6a267572a97dcf286e77aa0dd3b9b23292ffaa1ea8683 -F src/sqliteInt.h ea0b5769140ca4bed03aeca8e7abb5c7a3eef4ffac723c8db3cfde88c390f807 +F src/sqlite3ext.h 9ecc93b8493bd20c0c07d52e2ac0ed8bab9b549c7f7955b59869597b650dd8b5 +F src/sqliteInt.h d229b6a5f70fe6c57d2f91f0edc60a9c4437397b4a5b59fd72fe9eb3b94d3437 F src/sqliteLimit.h 1513bfb7b20378aa0041e7022d04acb73525de35b80b252f1b83fedb4de6a76b F src/status.c 46e7aec11f79dad50965a5ca5fa9de009f7d6bde08be2156f1538a0a296d4d0e F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34 -F src/tclsqlite.c 6b19e7562195aaf881f3e35e2472dc01ae3cb156961db5126c3d616744729b7e -F src/test1.c 353b066e7ec761c4c715c1c20b888e0e7a0b0c0eda7f68c110e032d63713cade +F src/tclsqlite.c cfe7f93daf9d8787f65e099efb67d7cdfc2c35236dec5d3f6758520bd3519424 +F src/test1.c 0dc98af0769302672dcefd07a6128ee14e837b9f6e338a1aaca7ac31e4d8d2f8 F src/test2.c 3efb99ab7f1fc8d154933e02ae1378bac9637da5 F src/test3.c 61798bb0d38b915067a8c8e03f5a534b431181f802659a6616f9b4ff7d872644 -F src/test4.c 18ec393bb4d0ad1de729f0b94da7267270f3d8e6 +F src/test4.c 405834f6a93ec395cc4c9bb8ecebf7c3d8079e7ca16ae65e82d01afd229694bb F src/test5.c 328aae2c010c57a9829d255dc099d6899311672d F src/test6.c e8d839fbc552ce044bec8234561a2d5b8819b48e29548ad0ba400471697946a8 F src/test7.c 5612e9aecf934d6df7bba6ce861fdf5ba5456010 @@ -543,8 +547,8 @@ F src/test_config.c 5ebafbcd5c75ac1c16bb0c8fe926dc325cc03e780943a88ca50e0d9a4fc4 F src/test_delete.c e2fe07646dff6300b48d49b2fee2fe192ed389e834dd635e3b3bac0ce0bf9f8f F src/test_demovfs.c a0c3bdd45ed044115c2c9f7779e56eafff18741e F src/test_devsym.c 1960abbb234b97e9b920f07e99503fc04b443f62bbc3c6ff2c2cea2133e3b8a2 -F src/test_fs.c 35a2f7dd8a915900873386331386d9ba1ae1b5026d74fd20c2807bc76221f291 -F src/test_func.c d12d805953bcb3bb19f71d29cdc93383b7b7a3369504d2b7e398a1bd77376294 +F src/test_fs.c ba1e1dc18fd3159fdba0b9c4256f14032159785320dfbd6776eb9973cb75d480 +F src/test_func.c 181f992e5495644434c4f0e3cc72362a78c295eb2cf3ff4d02498b8bde7aa276 F src/test_hexio.c 1d4469ca61ab202a1fcec6543f584d2407205e8d F src/test_init.c 4413c211a94b62157ca4c145b3f27c497f03c664 F src/test_intarray.c 39b4181662a0f33a427748d87218e7578d913e683dc27eab7098bb41617cac71 @@ -567,43 +571,44 @@ F src/test_server.c a2615049954cbb9cfb4a62e18e2f0616e4dc38fe F src/test_sqllog.c 11e6ce7575f489155c604ac4b439f2ac1d3d5aef F src/test_superlock.c 4839644b9201da822f181c5bc406c0b2385f672e F src/test_syscall.c 1073306ba2e9bfc886771871a13d3de281ed3939 -F src/test_tclsh.c 06317648b0d85a85fd823f7973b55535c59a3156c1ef59394fe511f932cfa78d +F src/test_tclsh.c eeafce33ad2136d57e5dec10f1e9a4347447eb72ffd504a1c7b9c6bfe2e71578 F src/test_tclvar.c 33ff42149494a39c5fbb0df3d25d6fafb2f668888e41c0688d07273dcb268dfc F src/test_thread.c 911d15fb14e19c0c542bdc8aabf981c2f10a4858 -F src/test_vfs.c c6c6a58f66b26876c7b5769fb323a58b2c7120299b5084e7212c4116f902cbaa +F src/test_vdbecov.c f60c6f135ec42c0de013a1d5136777aa328a776d33277f92abac648930453d43 +F src/test_vfs.c 0868f1d4d7cdc7c6df60e895ca26b19e4f433dd1be0fc9c18c3ee63755804039 F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698 F src/test_windirent.c a895e2c068a06644eef91a7f0a32182445a893b9a0f33d0cdb4283dca2486ac1 F src/test_windirent.h 90dfbe95442c9762357fe128dc7ae3dc199d006de93eb33ba3972e0a90484215 F src/test_window.c cdae419fdcea5bad6dcd9368c685abdad6deb59e9fc8b84b153de513d394ba3f F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c -F src/tokenize.c 0a065eaa31f494ba31ac21d4a5d24a5a7865a7d849459f8c6266df1ac6b9aedf -F src/treeview.c c6ff90da4cc1813ff2d9bb11f17d4d927db62c47e552faa1835edc47269d753d +F src/tokenize.c d3615f0cbe4db5949503bf5916f3cd4fa5de855d5b4ef560f3b6dd5629423a1e +F src/treeview.c 56724725c62a0d0f408f7c257475dc33309198afee36a1d18be1bc268b09055e F src/trigger.c bb034c08eca111e66a19cda045903a12547c1be2294b5570d794b869d9c44a73 F src/update.c 0b973357d88092140531e07ff641139c26fb4380b0b9f5ed98c5f7691b4604d1 F src/upsert.c 0dd81b40206841814d46942a7337786932475f085716042d0cb2fc7791bf8ca4 -F src/utf.c 810fbfebe12359f10bc2a011520a6e10879ab2a163bcb26c74768eab82ea62a5 -F src/util.c 82a2e3f691a3b654be872e305dab1f455e565dedf5e6a90c818c1ab307c00432 -F src/vacuum.c a9f389f41556c0ec310bc9169dc9476603c30a0a913ad92bfbc75c86886967ca -F src/vdbe.c 2c61090f2328ad125c8e55b4dab0712a78cfdfac893152fae34bed7e015b7cd7 +F src/utf.c 2f0fac345c7660d5c5bd3df9e9d8d33d4c27f366bcfb09e07443064d751a0507 +F src/util.c e12939405e77906d06ab0b78c5f513dcd2b7cec2fbb553877b0abfece6067141 +F src/vacuum.c 72690ccb6877a88f8473a893cf9f6d7592236f3eebfebfa840b19c708acde574 +F src/vdbe.c 711ef421b3bb3db3b2476067b2dc3c71ef5844d9b1a723026578f89f6da621e8 F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237 -F src/vdbeInt.h a76d5eed62c76bcd8de7afd3147fac1bc40c5a870582664bcd7d071ef437c37f -F src/vdbeapi.c 57a2d794a8833f269b878dbc24e955369bdb379af6c4e93ebc5ce1a20fa3daf4 -F src/vdbeaux.c 4fa28b32452f6197dba7c8780dde11576b9a6d8ce6f35adbb69efc3e7d37fa0c +F src/vdbeInt.h 2c12704db9740c8e899786ecfc7a5797a9d067563496eb1b6ed03c592d7b8d90 +F src/vdbeapi.c 2ddd60f4a351f15ee98d841e346af16111ad59dfa4d25d2dd4012e9875bf7d92 +F src/vdbeaux.c f873b5c2efcf8a4d6ecfc5b1a5b06fd810419198f3bd882175d371cc03801873 F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191 -F src/vdbemem.c 3173f0275cf8643a03ed02084ee56b97fc1a17a2edb5907facec504f59c3172d -F src/vdbesort.c 90aad5a92608f2dd771c96749beabdb562c9d881131a860a7a5bccf66dc3be7f +F src/vdbemem.c 8e6889761e344babdb8a56dd1ac8911501fa648396544d1644f1cd6a87c80dc0 +F src/vdbesort.c 66592d478dbb46f19aed0b42222325eadb84deb40a90eebe25c6e7c1d8468f47 F src/vdbetrace.c 79d6dbbc479267b255a7de8080eee6e729928a0ef93ed9b0bfa5618875b48392 -F src/vtab.c 2462b7d6fd72b0b916477f5ef210ee49ab58cec195483ebdac0c8c5e3ec42cab +F src/vtab.c 4c5959e00b7a142198d178e3a822f4e05f36f2d1a3c57657373f9487154fc06b F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 -F src/wal.c 3f4f653daf234fe713edbcbca3fec2350417d159d28801feabc702a22c4e213f +F src/wal.c 9eccc7ebb532a7b0fd3cabc16cff576b9afa763472272db67d84fb8cec96f5c0 F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a F src/walker.c 7607f1a68130c028255d8d56094ea602fc402c79e1e35a46e6282849d90d5fe4 -F src/where.c 8a207cb2ca6b99e1edb1e4bbff9b0504385a759cbf66180d1deb34d80ca4b799 +F src/where.c ff2955dc2743c1af05ba5a8232ab72724d9a63b76dbee256368f40fd3ef82db5 F src/whereInt.h 5f14db426ca46a83eabab1ae9aa6d4b8f27504ad35b64c290916289b1ddb2e88 -F src/wherecode.c 061848646cc46a137d9038e47e666a955b3b2a1b458365eeed76b004c0053f3b -F src/whereexpr.c 36b47f7261d6b6f1a72d774c113b74beddf6745aba1018e64b196e29db233442 -F src/window.c df2456386e0b1553a8d1fcf3a0ddc4c058fe2c650ea8c74b6bf8862082ddafc9 +F src/wherecode.c 83be72e8d1c0231d0db06ffe5cfd32c7834bd00d2ed869306a2c1e0828488752 +F src/whereexpr.c 90859652920f153d2c03f075488744be2926625ebd36911bcbcb17d0d29c891c +F src/window.c 038c248267e74ff70a2bb9b1884d40fd145c5183b017823ecb6cbb14bc781478 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd F test/affinity3.test 6a101af2fc945ce2912f6fe54dd646018551710d @@ -622,8 +627,8 @@ F test/alterlegacy.test 82022721ce0de29cedc9a7af63bc9fcc078b0ee000f8283b4b6ea9c3 F test/altermalloc.test 167a47de41b5c638f5f5c6efb59784002b196fff70f98d9b4ed3cd74a3fb80c9 F test/altermalloc2.test fa7b1c1139ea39b8dec407cf1feb032ca8e0076bd429574969b619175ad0174b F test/altertab.test 6e13f13d8c30708f16187908c31dadb1bfff9e3cb2a07a7392a7a5e076f58f4a -F test/altertab2.test 7bedde2e6e71fdecd7a2af64b696cd0b3d3a344f5cf1db6785d9e3b5665193cf -F test/altertab3.test 9dd97ab8161eb6afc0e30e7c61a38336687fbd09e6ddc4c9f1e450cc0b12160b +F test/altertab2.test 5d423a2d1006085b05cc1b788863d5a860ea2da21c4f892d15e2f2a34c78348a +F test/altertab3.test 40f2ce9be675e354d3e55c72f8baf38813be975ff4dd9e6b3144493c3c5bc033 F test/amatch1.test b5ae7065f042b7f4c1c922933f4700add50cdb9f F test/analyze.test 7168c8bffa5d5cbc53c05b7e9c7fcdd24b365a1bc5046ce80c45efa3c02e6b7c F test/analyze3.test ff62d9029e6deb2c914490c6b00caf7fae47cc85cdc046e4a0d0a4d4b87c71d8 @@ -658,12 +663,12 @@ F test/auth.test 3310d9c08e928beca42d3eadaaf53cef619d9d275f598565a3758a21ce63138 F test/auth2.test 9eb7fce9f34bf1f50d3f366fb3e606be5a2000a1 F test/auth3.test db21405b95257c24d29273b6b31d0efc59e1d337e3d5804ba2d1fd4897b1ae49 F test/autoanalyze1.test b9cc3f32a990fa56669b668d237c6d53e983554ae80c0604992e18869a0b2dec -F test/autoinc.test 381f494fefa90acd999933829e2934efb6b40906db9d6a39e822e3f7b4c8bf61 +F test/autoinc.test 997d6f185f138229dc4251583a1d04816423dddc2fc034871a01aeb1d728cb39 F test/autoindex1.test 96185415f5faacd5b8d7a7f505efddd5abb1f111d58338e9c0b1dc40b87cd3cc F test/autoindex2.test 12ef578928102baaa0dc23ad397601a2f4ecb0df F test/autoindex3.test 2dd997d6590438b53e4f715f9278aa91c9299cf3f81246a0915269c35beb790e F test/autoindex4.test 49d3cd791a9baa16fb461d7ea3de80d019a819cf -F test/autoindex5.test 4a0eb6c7c7ae456d97a2061d4c8d6380946272c5c91d91507c1feb1af3dc7cce +F test/autoindex5.test 1d8c1134e1488a35c6fa205b2f52e72fc220972d946c59492d10bba01d6fecd4 F test/autovacuum.test 0831cd34e14695d297187f7f6519265e3121c5b0a1720e548e86829e796129e9 F test/autovacuum_ioerr2.test 8a367b224183ad801e0e24dcb7d1501f45f244b4 F test/avtrans.test b7dc25459ecbd86c6fa9c606ee3068f59d81e225118617dcf2bbb6ded2ade89e @@ -675,9 +680,9 @@ F test/backup5.test ee5da6d7fe5082f5b9b0bbfa31d016f52412a2e4 F test/backup_ioerr.test 4c3c7147cee85b024ecf6e150e090c32fdbb5135 F test/backup_malloc.test 0c9abdf74c51e7bedb66d504cd684f28d4bd4027 F test/badutf.test d5360fc31f643d37a973ab0d8b4fb85799c3169f -F test/badutf2.test f5bc7f2d280670ecd79b9cf4f0f1760c607fe51f +F test/badutf2.test f310fd3b24a491b6b77bccdf14923b85d6ebcce751068c180d93a6b8ff854399 F test/bc_common.tcl b5e42d80305be95697e6370e015af571e5333a1c -F test/bestindex1.test 852170bddbb21daa121fabcc274640ff83d7d8705912e8b5fe7ed2c5a9a9224a +F test/bestindex1.test 705b57d7f51d53ee5fd043dd9666236e1fc18f4d59abf51da0ea5ea1b4804947 F test/bestindex2.test 9a0ccd320b6525eec3a706aae6cdab7e1b7b5abca75027e39f39f755e76e5928 F test/bestindex3.test 7622e792ff2da16d262d3cea6ad914591ac4806d57ed128e6c940b7920b47b84 F test/bestindex4.test 038e3d0789332f3f1d61474f9bbc9c6d08c6bd1783a978f31f38ad82688de601 @@ -712,7 +717,7 @@ F test/capi2.test 34a1a9a96d543a2ec2c209696b11b164444f57253b1f2cba1c2e53fadede6c F test/capi3.test 3910a73c38ac76d69778dd9eb481ab7cd6ed59117fc047b4f6056a5c72529de1 F test/capi3b.test efb2b9cfd127efa84433cd7a2d72ce0454ae0dc4 F test/capi3c.test 54e2dc0c8fd7c34ad1590d1be6864397da2438c95a9f5aee2f8fbc60c112e44b -F test/capi3d.test 485048dc5cd07bc68011e4917ad035ad6047ab82 +F test/capi3d.test aba917805573a03deed961a21f07a5a84505ad0a616f7e3fc1508844a15bccc4 F test/capi3e.test 3d49c01ef2a1a55f41d73cba2b23b5059ec460fe F test/cast.test 5ceb920718d280b61163500a7d29e0e0a86458b1cbd92d96f962c9d970aa3857 F test/cffault.test 9d6b20606afe712374952eec4f8fd74b1a8097ef @@ -738,7 +743,7 @@ F test/conflict2.test bb0b94cf7196c64a3cbd815c66d3ee98c2fecd9c F test/conflict3.test a83db76a6c3503b2fa057c7bfb08c318d8a422202d8bc5b86226e078e5b49ff9 F test/contrib01.test 2a1cbc0f2f48955d7d073f725765da6fbceda6b4 F test/corrupt.test d7cb0300e4a297147b6a05e92a1684bc8973635c3bcaa3d66e983c9cbdbf47a3 -F test/corrupt2.test a7f95356d19a4e8bf9423622ad865cabf48ae49dad40eb7a17a0b39f1cdd6948 +F test/corrupt2.test bb50042cf9a1f1023d73af325d47eb02a6bb11e3c52f8812644b220c5d4bca35 F test/corrupt3.test f95d7bf78109e0b84eb285a787ce91a3fd6a2dd7d0cb55882abff3bdc081a57e F test/corrupt4.test 8d1d86b850fcc43e417450454f2044e52d55778a F test/corrupt5.test 387be3250795e2a86e6234745558b80efb248a357d0cd8e53bce75c7463f545d @@ -748,16 +753,16 @@ F test/corrupt8.test 2399dfe40d2c0c63af86706e30f3e6302a8d0516 F test/corrupt9.test 730a3db08d4ab9aa43392ea30d9c2b4879cbff85 F test/corruptA.test 112f4b2ae0b95ebf3ea63718642fb969a93acea557ace3a307234d19c245989b F test/corruptB.test 73a8d6c0b9833697ecf16b63e3c5c05c945b5dec -F test/corruptC.test 138ecb02188ed1a719b533d4a139568204039f72f00e07a8d30d920bd83122db -F test/corruptD.test b3c205fac7952b1de645ce44bb02335cd9e3e040 +F test/corruptC.test 776f43eb7df750f6d00b8b59c36c3b690822b2880ddbd80d22bf44e9f66acf5c +F test/corruptD.test 33a37ce3ed56a20093ceee778cd2d7109c7085a59f3213d2baede11d952e8e50 F test/corruptE.test 82ccf4f8f543fdbedd4aa42c709cb077f7374c62 F test/corruptF.test be9fde98e4c93648f1ba52b74e5318edc8f59fe4 F test/corruptG.test adf79b669cbfd19e28c8191a610d083ae53a6d51 F test/corruptH.test 79801d97ec5c2f9f3c87739aa1ec2eb786f96454 F test/corruptI.test a17bbf54fdde78d43cf3cc34b0057719fd4a173a3d824285b67dc5257c064c7b F test/corruptJ.test 4d5ccc4bf959464229a836d60142831ef76a5aa4 -F test/corruptK.test 5ef338c560ca4dfb7360828da16f1829be4deba3b378cafdc7a1cdaf027eb5c4 -F test/corruptL.test 0f64242b83db6d0bd5b6e38c205bf7c2a3bc6c9f80351f49c4dee1639aca60d8 +F test/corruptK.test 5b4212fe346699831c5ad559a62c54e11c0611bdde1ea8423a091f9c01aa32af +F test/corruptL.test a569f3cece872a1f21568bd5378f55ce5c365c50845a06fae65a2721cce62264 F test/cost.test 51f4fcaae6e78ad5a57096831259ed6c760e2ac6876836e91c00030fad385b34 F test/count.test cb2e0f934c6eb33670044520748d2ecccd46259c F test/countofview.test e3d4cd6900e4e4f074968ab24b8b87d3671cd624961bef40fd3a6b8f574343cf @@ -772,7 +777,7 @@ F test/crash7.test 1a194c4900a255258cf94b7fcbfd29536db572df F test/crash8.test 64366e459c28dd62edfb7ad87253a409c7533b92d16fcc479a6a8131bdcc3100 F test/crashM.test d95f59046fa749b0d0822edf18a717788c8f318d F test/crashtest1.c 09c1c7d728ccf4feb9e481671e29dda5669bbcc2 -F test/createtab.test b5de160630b209c4b8925bdcbbaf48cc90b67fe8 +F test/createtab.test 85cdfdae5c3de331cd888d6c66e1aba575b47c2e3c3cc4a1d6f54140699f5165 F test/cse.test 277350a26264495e86b1785f34d2d0c8600e021c F test/csv01.test c9c3af0d58c34e9ac970c5875a77939edb958762c8aafb95409e19a3f088b6cd F test/ctime.test 78749e6c9a5f0010d67985be80788f841e3cd2da18114e2ed6010399a7d807f3 @@ -782,9 +787,9 @@ F test/dataversion1.test 6e5e86ac681f0782e766ebcb56c019ae001522d114e0e111e5ebf68 F test/date.test 9b73bbeb1b82d9c1f44dec5cf563bf7da58d2373 F test/date2.test 74c234bece1b016e94dd4ef9c8cc7a199a8806c0e2291cab7ba64bace6350b10 F test/dbfuzz.c 73047c920d6210e5912c87cdffd9a1c281d4252e -F test/dbfuzz001.test 29b6c6b39a701b6b5b08035c637674b76e1ecea515b1a184b29e3bd0f2d02dad +F test/dbfuzz001.test e32d14465f1c77712896fda6a1ccc0f037b481c191c1696a9c44f6c9e4964faf F test/dbfuzz2-seed1.db e6225c6f3d7b63f9c5b6867146a5f329d997ab105bee64644dc2b3a2f2aebaee -F test/dbfuzz2.c 5d5eb817dc8195e0228227510ee6a4b49f46e679fc2d5be96841cce819bf42f7 +F test/dbfuzz2.c 6c355cf70c4a308b1b84a11a65282bcac5b4038db77de5cfc8ad080ef371f109 F test/dbpage.test 650234ba683b9d82b899c6c51439819787e7609f17a0cc40e0080a7b6443bc38 F test/dbstatus.test cd83aa623b8aab477269bc94cf8aa90c1e195a144561dd04a1620770aaa8524e F test/dbstatus2.test f5fe0afed3fa45e57cfa70d1147606c20d2ba23feac78e9a172f2fe8ab5b78ef @@ -792,7 +797,7 @@ F test/default.test 3e46c421eebefd2787c2f96673efabf792d360f3a1d5073918cbe450ce67 F test/delete.test 31832b0c45ecb51a54348c68db173be462985901e6ed7f403d6d7a8f70ab4ef0 F test/delete2.test 3a03f2cca1f9a67ec469915cb8babd6485db43fa F test/delete3.test 555e84a00a99230b7d049d477a324a631126a6ab -F test/delete4.test 21d2113217eeaacac2d99defe14fe6611615ae86 +F test/delete4.test 6aa279f459f4aa792cc251435c3809415c1ecaf9f27dce91675e26f05b503db3 F test/delete_db.test 096d828493c7907f9ea11a7098ea6a0f73edba89406487d5d6cc2228dc4ab8b0 F test/descidx1.test 6d03b44c8538fe0eb4924e19fba10cdd8f3c9240 F test/descidx2.test 9f1a0c83fd57f8667c82310ca21b30a350888b5d @@ -821,7 +826,7 @@ F test/e_select2.test aceb80ab927d46fba5ce7586ebabf23e2bb0604f F test/e_totalchanges.test b12ee5809d3e63aeb83238dd501a7bca7fd72c10 F test/e_update.test f46c2554d915c9197548681e8d8c33a267e84528 F test/e_uri.test 47eeb2960e74613f0f8722b2f13aef08fde69daa16e5380ac93df84dac8b1f72 -F test/e_vacuum.test 1b8b4772d05374aa1b8958669138bbb4213ee26a +F test/e_vacuum.test 0d8832a2ce92350db0d0cff47b419465fd9772562e1f77ff7d9478c07a4980d2 F test/e_wal.test ae9a593207a77d711443ee69ffe081fda9243625 F test/e_walauto.test 248af31e73c98df23476a22bdb815524c9dc3ba8 F test/e_walckpt.test 28c371a6bb5e5fe7f31679c1df1763a19d19e8a0 @@ -907,7 +912,7 @@ F test/fts3al.test 07d64326e79bbdbab20ee87fc3328fbf01641c9f F test/fts3am.test 218aa6ba0dfc50c7c16b2022aac5c6be593d08d8 F test/fts3an.test a49ccadc07a2f7d646ec1b81bc09da2d85a85b18 F test/fts3ao.test 266989148fec6d9f1bb6c5382f7aa3dcea0e9cd444576e28dd2b9287ac7dd220 -F test/fts3atoken.test 4b4c16fdcfc972f2cdbba212375a060a86ccf5f1 +F test/fts3atoken.test bef8a163490098a6b8a6ec5f5407269a3a15b9902c0fcf5e962825a81675b3a0 F test/fts3auto.test 19097050a3ca7ab7a43b2be967cb3dfd8ddf841dfdc4eac88deb172ad2f209f2 F test/fts3aux1.test 7a170e172afdbceb67f5baa05941fd4fbf56af42f61daa3d140f4b4bf4cb68f6 F test/fts3aux2.test 2459e7fa3e22734aed237d1e2ae192f5541c4d8b218956ad2d90754977bf907f @@ -918,7 +923,7 @@ F test/fts3conf.test c84bbaec81281c1788aa545ac6e78a6bd6cde2bdbbce2da261690e3659f F test/fts3corrupt.test 46b9ddda7f6588fd5a5b1f4bb4fc0618dc45010e7dddb8a3a188baf3197177ae F test/fts3corrupt2.test bf55c3fa0b0dc8ea1c0fe5543623bd27714585da6a129038fd6999fe3b0d25f3 F test/fts3corrupt3.test 0d5b69a0998b4adf868cc301fc78f3d0707745f1d984ce044c205cdb764b491f -F test/fts3corrupt4.test ff7313656c4ad446e61c41e5cb81336441eaaafe6f4fd6938f1c3ac0c985045e +F test/fts3corrupt4.test af68ede153cbeff7309f7da2f9d8fd12a01f7e1debb03eb748c302079ac5ae05 F test/fts3cov.test cb932743da52a1c79a1ab8983e26c8121cf02263d6ff16e1f642e6f9b8348338 F test/fts3d.test 2bd8c97bcb9975f2334147173b4872505b6a41359a4f9068960a36afe07a679f F test/fts3defer.test f4c20e4c7153d20a98ee49ee5f3faef624fefc9a067f8d8d629db380c4d9f1de @@ -929,7 +934,7 @@ F test/fts3e.test 1f6c6ac9cc8b772ca256e6b22aaeed50c9350851 F test/fts3expr.test ebae205a7a89446c32583bcd492dcb817b9f6b31819bb4dde2583bb99c77e526 F test/fts3expr2.test 18da930352e5693eaa163a3eacf96233b7290d1a F test/fts3expr3.test c4d4a7d6327418428c96e0a3a1137c251b8dfbf8 -F test/fts3expr4.test cac5dd815fe6b5921741abdccdde3b7f50b86394de91e13308ee7986859c4a9f +F test/fts3expr4.test f5b2832549f01b1f7f73389fa21d4b875499bc95bf7c8b36271844888c6a0938 F test/fts3expr5.test 1368738e3298a7ce0dee3a44d6ebb8f468b2a76f3d1dd18d4ea6d8bc2eeccc1b F test/fts3fault.test 798e45af84be7978ca33d5bdc94246eb44724db24174b5d8e9b1ac46c57fb08d F test/fts3fault2.test 6a17a11d8034b1c4eca9f3091649273d56c49ff049e2173df8060f94341e9da0 @@ -951,7 +956,7 @@ F test/fts3snippet.test dace744104d1a44dc12dc9dd10b8d7542342df503d96942b7c4a5503 F test/fts3sort.test ed34c716a11cc2009a35210e84ad5f9c102362ca F test/fts3tok1.test a663f4cac22a9505400bc22aacb818d7055240409c28729669ea7d4cc2120d15 F test/fts3tok_err.test 52273cd193b9036282f7bacb43da78c6be87418d -F test/fts3varint.test 752c08ed5d32c5d7dc211b056f4ed68a76b7e36e +F test/fts3varint.test 0b84a3fd4eba8a39f3687523804d18f3b322e6d4539a55bf342079c3614f2ada F test/fts4aa.test 10aac8e9d62c7357590acfabe3fad01e9a9ce1cb F test/fts4check.test 6259f856604445d7b684c9b306b2efb6346834c3f50e8fc4a59a2ca6d5319ad0 F test/fts4content.test 1518195a9f92b711d94419f76409a31cc78755854fb0abb1da2b74b9e0cf843e @@ -971,7 +976,7 @@ F test/fts4opt.test 0fd0cc84000743ff2a883b9b84b4a5be07249f0ba790c8848a757164cdd4 F test/fts4umlaut.test fcaca4471de7e78c9d1f7e8976e3e8704d7d8ad979d57a739d00f3f757380429 F test/fts4unicode.test ceca76422abc251818cb25dabe33d3c3970da5f7c90e1540f190824e6b3a7c95 F test/full.test 6b3c8fb43c6beab6b95438c1675374b95fab245d -F test/func.test 09dda479bcfc568f99f3070413e9672a8eeedc1be9c5d819bf55d4788c2583b7 +F test/func.test 150270b6e2e0281697c116e5ca0e46b41ace8d34b1c92461d88fdd9968c9b03c F test/func2.test 772d66227e4e6684b86053302e2d74a2500e1e0f F test/func3.test d202a7606d23f90988a664e88e268aed1087c11c F test/func4.test 6beacdfcb0e18c358e6c2dcacf1b65d1fa80955f @@ -984,15 +989,15 @@ F test/fuzz3.test 9c813e6613b837cb7a277b0383cd66bfa07042b4cf0317157c35852f30043c F test/fuzz4.test c229bcdb45518a89e1d208a21343e061503460ac69fae1539320a89f572eb634 F test/fuzz_common.tcl a87dfbb88c2a6b08a38e9a070dabd129e617b45b F test/fuzz_malloc.test f348276e732e814802e39f042b1f6da6362a610af73a528d8f76898fde6b22f2 -F test/fuzzcheck.c 7ab35ca464fa0fa9c8340b71f08a16c50c14b961264c172cc3d1a67289b2800d +F test/fuzzcheck.c d0e76671ea5c3a766768b65d69f7d755aa614a98c17b84fa4496f4cd2e2fa515 F test/fuzzdata1.db 7ee3227bad0e7ccdeb08a9e6822916777073c664 F test/fuzzdata2.db 128b3feeb78918d075c9b14b48610145a0dd4c8d6f1ca7c2870c7e425f5bf31f F test/fuzzdata3.db c6586d3e3cef0fbc18108f9bb649aa77bfc38aba F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e42ed2 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 -F test/fuzzdata7.db 3fc78e65dfe0be9df9e262075d5a335f18f627da47dfc691d1a7b822f34d4b99 -F test/fuzzdata8.db 3f7c67741ba91c13955609700a44608d2dfe4f037e508f77d236ea9abb431a02 +F test/fuzzdata7.db f46c9a5698c1ca75ca6280c7c879a3f46dc82fe4b1ce246827496b806488952d +F test/fuzzdata8.db 5f12b6a8579e89616da9bd6dede1f38748eb04a1265f0b89117274f44d76b227 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1006,7 +1011,7 @@ F test/hook2.test b9ff3b8c6519fb67f33192f1afe86e7782ee4ac8 F test/icu.test 41aa8847745a879b897a7febea0f8f9efc8e67fe8bf680589b6e07c7b0a1569a F test/ieee754.test 806fc0ce7f305f57e3331eaceeddcfec9339e607 F test/imposter1.test c3f1db2d3db2c24611a6596a3fc0ffc14f1466c8 -F test/in.test 63933d7b71eed01a49df55541a73a75398302b50a05b5333f90481460a32ff49 +F test/in.test 4b985774a64f143f486418cec53379bed3aeb0503179353cc7c7ce15fb464349 F test/in2.test 5d4c61d17493c832f7d2d32bef785119e87bde75 F test/in3.test 3cbf58c87f4052cee3a58b37b6389777505aa0c0 F test/in4.test d2b38cba404bc4320f4fe1b595b3d163f212c068 @@ -1035,12 +1040,12 @@ F test/index9.test 0aa3e509dddf81f93380396e40e9bb386904c1054924ba8fa9bcdfe85a8e7 F test/indexedby.test a52c8c6abfae4fbfb51d99440de4ca1840dbacc606b05e29328a2a8ba7cd914e F test/indexexpr1.test 635261197bcdc19b9b2c59bbfa7227d525c00e9587faddb2d293c44d287ce60e F test/indexexpr2.test 38020c247ee77ba19322fadde99db84bdf2aef34f714866786563c3834bb2dce -F test/indexfault.test 31d4ab9a7d2f6e9616933eb079722362a883eb1d +F test/indexfault.test 98d78a8ff1f5335628b62f886a1cb7c7dac1ef6d48fa39c51ec871c87dce9811 F test/init.test 15c823093fdabbf7b531fe22cf037134d09587a7 F test/insert.test 9773604f8e1a2595f51488a5643c359d8a11dc55a11cb185910d93387d378458 F test/insert2.test 4d14b8f1b810a41995f6286b64a6943215d52208 F test/insert3.test 1b7db95a03ad9c5013fdf7d6722b6cd66ee55e30 -F test/insert4.test 46bead5f39e181850ee56adcf49d3a3157c460c52249211714612ac89fe34835 +F test/insert4.test 7802ada6ba8738661b9f6c0e26858d3375b40cc7180289fd350644cd7a08fec9 F test/insert5.test 394f96728d1258f406fe5f5aeb0aaf29487c39a6 F test/insertfault.test ac63d14ea3b49c573673a572f4014b9117383a03e497c58f308b5c776e4a7f74 F test/instr.test 9a8802f28437d8ade53fedfc47b2ca599b4e48ba @@ -1065,7 +1070,7 @@ F test/join5.test f8b5ffdf3c1513486b52ad4e49225507ecee5005f210eb18688f791d253709 F test/join6.test cfe6503791ceb0cbb509966740286ec423cbf10b F test/journal1.test c7b768041b7f494471531e17abc2f4f5ebf9e5096984f43ed17c4eb80ba34497 F test/journal2.test 9dac6b4ba0ca79c3b21446bbae993a462c2397c4 -F test/journal3.test c9c29883f5bf535ae82ae21c472df6263806a22e467b6db7cd0d6d545305b4f6 +F test/journal3.test 939a3578396dffa0cdaa9b2685088c5a1a644db90d61aca08bd7e19d33932c00 F test/jrnlmode.test a6693f2bed4541a21e703aaa37bb3e10de154130645952933b82b2dec0a8b539 F test/jrnlmode2.test 8759a1d4657c064637f8b079592651530db738419e1d649c6df7048cd724363d F test/jrnlmode3.test 556b447a05be0e0963f4311e95ab1632b11c9eaa @@ -1080,7 +1085,7 @@ F test/laststmtchanges.test ae613f53819206b3222771828d024154d51db200 F test/lemon-test01.y 58b764610fd934e189ffbb0bbfa33d171b9cb06019b55bdc04d090d6767e11d7 F test/like.test 11cfd7d4ef8625389df9efc46735ff0b0b41d5e62047ef0f3bc24c380d28a7a6 F test/like2.test 3b2ee13149ba4a8a60b59756f4e5d345573852da -F test/like3.test 430691e6057e11a59e934be74c06b85605b80061d45af5714d52886a811efeb7 +F test/like3.test 0ce2630e39e32e42ce02d171f0a315189ca71fec37c5ddfb0191eecc3fe9d4da F test/limit.test 0c99a27a87b14c646a9d583c7c89fd06c352663e F test/limit2.test 9409b033284642a859fafc95f29a5a6a557bd57c1f0d7c3f554bd64ed69df77e F test/loadext.test faa4f6eed07a5aac35d57fdd7bc07f8fc82464cfd327567c10cf0ba3c86cde04 @@ -1123,7 +1128,7 @@ F test/malloctraceviewer.tcl b7a54595270c1d201abf1c3f3d461f27eaf24cdef623ad08a0f F test/manydb.test 28385ae2087967aa05c38624cec7d96ec74feb3e F test/mem5.test c6460fba403c5703141348cd90de1c294188c68f F test/memdb.test c1f2a343ad14398d5d6debda6ea33e80d0dafcc7 -F test/memdb1.test 0632e6ea56c48e3c6e9b0c73e120310bad8f93762543f809e267888f5a37943f +F test/memdb1.test 58d92c2bf622cc5f0f41461e1b35cf64f3f787199544c2c1dada37d88753f9d4 F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2 F test/memsubsys1.test 9e7555a22173b8f1c96c281ce289b338fcba2abe8b157f8798ca195bbf1d347e F test/memsubsys2.test 3e4a8d0c05fd3e5fa92017c64666730a520c7e08 @@ -1195,16 +1200,16 @@ F test/parser1.test 6ccdf5e459a5dc4673d3273dc311a7e9742ca952dd0551a6a6320d27035c F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442 F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff -F test/permutations.test 52d2c37fe8cc07ec7362024c214b04bb69432995b3a984a3fbabc60fa6ada3ee -F test/pg_common.tcl 301ac19c1a52fd55166d26db929b3b89165c634d52b5f8ad76ea8cb06960db30 -F test/pragma.test c267bf02742c823a191960895b3d52933cebd7beee26757d1ed694f213fcd867 +F test/permutations.test b8f0da2f53ef1bd7ff149a140ee625aa7276c94ae15eb9acc2d8ed4af8f22b13 +F test/pg_common.tcl 4740dc35190d6acdab14c097783331361301ab504a94d948f6afbb56ce0a51e8 +F test/pragma.test cf066fe0f7f5d49f4758de4986407b8676c61aaa7871599340d64f42a8edc352 F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f F test/pragma3.test 8300aa9c63cff1027006ca34bf413a148abbd6dcd471fa9a1ded322fe18c0df9 -F test/pragma4.test 52d8186f9e8d09b87189432cdd401dfa66d0b32445e837fa19046c8ae7621b0e +F test/pragma4.test 26b250531f1c58d9b6187b663f411cd6baf227a4afeffa8f75d0f4c101f4920d F test/pragma5.test 824ce6ced5d6b7ec71abe37fc6005ff836fe39d638273dc5192b39864b9ee983 F test/pragmafault.test 275edaf3161771d37de60e5c2b412627ac94cef11739236bec12ed1258b240f8 F test/prefixes.test b524a1c44bffec225b9aec98bd728480352aa8532ac4c15771fb85e8beef65d9 -F test/printf.test a3e559bc9d922e7fe44e9d05c6965fee34fe3bc28300a4248c6a063425246ffd +F test/printf.test 0300699733e53101b2ce48800518427249edd4053bb50fa0621c6607482f0fdb F test/printf2.test 30b5dd0b4b992dc5626496846ecce17ff592cacbcb11c3e589f3ac4d7e129dae F test/progress.test ebab27f670bd0d4eb9d20d49cef96e68141d92fb F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc @@ -1222,7 +1227,8 @@ F test/rdonly.test 64e2696c322e3538df0b1ed624e21f9a23ed9ff8 F test/regexp1.test 497ea812f264d12b6198d6e50a76be4a1973a9d8 F test/regexp2.test 40e894223b3d6672655481493f1be12012f2b33c F test/reindex.test 44edd3966b474468b823d481eafef0c305022254 -F test/releasetest.tcl 7712811e0f4e2f198ec786cb2e1352b3793d7395f48a3cceef0572d8823eb75e x +F test/releasetest.tcl 204efd3a87ec1d62da2efde42c673b18b955350a9d3c6ac0b4dbba5bc8595808 x +F test/releasetest_data.tcl c3746248b5ad8f99a29020f83501bb25e024156ecc37e05c71c76da4fc8601c6 F test/resetdb.test 8062cf10a09d8c048f8de7711e94571c38b38168db0e5877ba7561789e5eeb2b F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb F test/rollback.test 06680159bc6746d0f26276e339e3ae2f951c64812468308838e0a3362d911eaa @@ -1250,7 +1256,7 @@ F test/savepoint5.test 0735db177e0ebbaedc39812c8d065075d563c4fd F test/savepoint6.test f41279c5e137139fa5c21485773332c7adb98cd7 F test/savepoint7.test cde525ea3075283eb950cdcdefe23ead4f700daa F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2 -F test/scanstatus.test d14842d0a2757ee059bcffa365746453d60952ba1077980c9a348a9fefbd232a +F test/scanstatus.test 874e35011779b07725a47dbf1dd6282b0ca04af7e028fb0b534ee544b571be42 F test/schema.test 8f7999be894260f151adf15c2c7540f1c6d6a481 F test/schema2.test 906408621ea881fdb496d878b1822572a34e32c5 F test/schema3.test 1bc1008e1f8cb5654b248c55f27249366eb7ed38 @@ -1279,7 +1285,7 @@ F test/selectG.test 089f7d3d7e6db91566f00b036cb353107a2cca6220eb1cb264085a836dae F test/server1.test c2b00864514a68a0e6fd518659dc95d0050307a357a08969872bef027d785dc4 F test/session.test 78fa2365e93d3663a6e933f86e7afc395adf18be F test/sessionfuzz-data1.db 1f8d5def831f19b1c74571037f0d53a588ea49a6c4ca2a028fc0c27ef896dbcb -F test/sessionfuzz.c b0fcdcf757451957e17396a3af5171f1fdf9b2babc81da9fa35675df46c4729a +F test/sessionfuzz.c be9c4d4afd359ce80024d8b541b9b8a880510aef5cf263df56fc0e9b947727f1 F test/shared.test 1826673eb5eb745fb91a3bdac99a7737057742ae38dcb0fe076a384d6727578b F test/shared2.test 03eb4a8d372e290107d34b6ce1809919a698e879 F test/shared3.test ab693f9b6e156b8bfb2a0ad94f29fe69602a5d38 @@ -1292,7 +1298,7 @@ F test/sharedA.test 49d87ec54ab640fbbc3786ee3c01de94aaa482a3a9f834ad3fe92770eb69 F test/sharedB.test 16cc7178e20965d75278f410943109b77b2e645e F test/shared_err.test 32634e404a3317eeb94abc7a099c556a346fdb8fb3858dbe222a4cbb8926a939 F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304 -F test/shell1.test 0378c4e9e800da6fbb3c86c0c8f2cf5efc9e4155b4b6447d27dc71de648fc0a1 +F test/shell1.test 3c9707dce15e8fdca529503378660f099777d3ddcedccf801a37589a405c5942 F test/shell2.test e242a9912f44f4c23c3d1d802a83e934e84c853b F test/shell3.test ac8c2b744014c3e9a0e26bfd829ab65f00923dc1a91ffd044863e9423cc91494 F test/shell4.test 1c6aef11daaa2d6830acaba3ac9cbec93fbc1c3d5530743a637f39b3987d08ce @@ -1305,8 +1311,8 @@ F test/shortread1.test bb591ef20f0fd9ed26d0d12e80eee6d7ac8897a3 F test/show_speedtest1_rtree.tcl 32e6c5f073d7426148a6936a0408f4b5b169aba5 F test/shrink.test 1b4330b1fd9e818c04726d45cb28db73087535ce F test/sidedelete.test f0ad71abe6233e3b153100f3b8d679b19a488329 -F test/skipscan1.test 3ea1cccca8f1b0e1cf3e73a63b43dd796f34d4aaee815e641f0d2ebb3fa448d4 -F test/skipscan2.test ef143c6e4a5ba4f19c1d1e3f517811f7942bdf2142736cc568feb34e0b5fb763 +F test/skipscan1.test b1fef3046d555836712d4a3a7c8ae8193356c6a15bee59cb3976e4ee98596c97 +F test/skipscan2.test 3eb703ce794f139e7b83567911046298bcde29606116727f9b700ce34f559d2d F test/skipscan3.test ec5bab3f81c7038b43450e7b3062e04a198bdbb5 F test/skipscan5.test 67817a4b6857c47e0e33ba3e506da6f23ef68de2 F test/skipscan6.test 0b4cd1b4ac9f84d91454df513c99a4932fa07e8f27b8049bea605068b3e34ac7 @@ -1339,7 +1345,7 @@ F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33 F test/spellfix4.test 51c7c26514ade169855c66bcf130bd5acfb4d7fd090cc624645ab275ae6a41fb F test/sqldiff1.test 28cd737cf1b0078b1ec1bbf425e674c47785835e -F test/sqllimits1.test a74ee2a3740b9f9c2437c246d8fb77354862a142 +F test/sqllimits1.test 264f4b0f941800ba139d25e33ee919c5d95fea06dfbe8ac291d6811a30984ca5 F test/sqllog.test 6af6cb0b09f4e44e1917e06ce85be7670302517a F test/stat.test f8f1279ffffabe6df825723af18cc6e0ae70a893 F test/statfault.test f525a7bf633e50afd027700e9a486090684b1ac1 @@ -1365,7 +1371,7 @@ F test/tabfunc01.test 20e98ffe55f35d8d33fd834ca8bf9d4b637e560af8fcd00464b4154d90 F test/table.test eb3463b7add9f16a5bb836badf118cf391b809d09fdccd1f79684600d07ec132 F test/tableapi.test ecbcc29c4ab62c1912c3717c48ea5c5e59f7d64e4a91034e6148bd2b82f177f4 F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930 -F test/tclsqlite.test dca8aa30d84175e7d8c8fc43d3ffa11fa56e23fbdac2679d03833a0f326edf34 +F test/tclsqlite.test 5a06962d8f18edf4703931f6b7dacd83678d02fa5c8ced9a7958c007ad58626a F test/tempdb.test 4cdaa23ddd8acb4d79cbb1b68ccdfd09b0537aaba909ca69a876157c2a2cbd08 F test/tempdb2.test 2479226e4cb96f4c663eccd2d12c077cf6bda29ca5cc69a8a58a06127105dd62 F test/tempfault.test 0c0d349c9a99bf5f374655742577f8712c647900 @@ -1373,7 +1379,7 @@ F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptable2.test d2940417496e2b9548e01d09990763fbe88c316504033256d51493e1f1a5ce6a F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637 F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc -F test/tester.tcl 499a5086815aa416d971ff438d7425c64f41ed3233251db4836d270f9a6671e8 +F test/tester.tcl 64ac253a411db1af7649438f674213a45876ca70609570310a8652edf23e5d77 F test/thread001.test b61a29dd87cf669f5f6ac96124a7c97d71b0c80d9012746072055877055cf9ef F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 @@ -1548,7 +1554,7 @@ F test/trigger8.test 30cb0530bd7c4728055420e3f739aa00412eafa4 F test/trigger9.test 2226ec795a33b0460ab5cf8891e9054cc7edef41 F test/triggerA.test 837be862d8721f903dba3f3ceff05b32e0bee5214cf6ea3da5fadf12d3650e9d F test/triggerB.test 56780c031b454abac2340dbb3b71ac5c56c3d7fe -F test/triggerC.test c7fbc3eb241b5a7ba4b0815f76c3708483e91890f9573add12a610c45b2a6022 +F test/triggerC.test f1210921924f3a6aaa8c1538115fe56c9c448e8e3033bf0dab38ae78db937c41 F test/triggerD.test 8e7f3921a92a5797d472732108109e44575fa650 F test/triggerE.test ede2e4bce4ba802337bd69d39447fa04a938e06d84a8bfc53c76850fc36ed86d F test/triggerF.test 5d76f0a8c428ff87a4d5ed52da06f6096a2c787a1e21b846111dfac4123de3ad @@ -1578,7 +1584,7 @@ F test/uri.test 3481026f00ade6dfe8adb7acb6e1e47b04369568 F test/uri2.test 9d3ba7a53ee167572d53a298ee4a5d38ec4a8fb7 F test/userauth01.test e740a2697a7b40d7c5003a7d7edaee16acd349a9 F test/utf16align.test 54cd35a27c005a9b6e7815d887718780b6a462ae -F test/vacuum-into.test 41d84c0603f3e8f3540321e5974d69008c562238c30924a9390c211a8c0a415e +F test/vacuum-into.test 48f4cec354fb6f27c98ef58d2fe49a11b71ff131af0cd9140efacc9858b9f670 F test/vacuum.test ce91c39f7f91a4273bf620efad21086b5aa6ef1d F test/vacuum2.test aa048abee196c16c9ba308465494009057b79f9b F test/vacuum3.test 77ecdd54592b45a0bcb133339f99f1ae0ae94d0d @@ -1611,7 +1617,7 @@ F test/vtab_err.test dcc8b7b9cb67522b3fe7a272c73856829dae4ab7fdb30399aea1b6981bd F test/vtab_shared.test 5253bff2355a9a3f014c15337da7e177ab0ef8ad F test/vtabdrop.test 65d4cf6722972e5499bdaf0c0d70ee3b8133944a4e4bc31862563f32a7edca12 F test/wal.test cdf0ca6cc0447520d19ef1c83287824ebeb3e82d75af856511ba96841a79fc9b -F test/wal2.test 155b9efa999bdb38ce1cd729b9a4fcdbffd6b88be27f039bad1d2929d287d918 +F test/wal2.test 537f59e5c5932e3b45bf3591ae3e48a2601360c2e52821b633e222fe6ebd5b09 F test/wal3.test 2a93004bc0fb2b5c29888964024695bade278ab2 F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c F test/wal5.test 9c11da7aeccd83a46d79a556ad11a18d3cb15aa9 @@ -1645,7 +1651,9 @@ F test/walshared.test 0befc811dcf0b287efae21612304d15576e35417 F test/walslow.test c05c68d4dc2700a982f89133ce103a1a84cc285f F test/walthread.test 14b20fcfa6ae152f5d8e12f5dc8a8a724b7ef189f5d8ef1e2ceab79f2af51747 F test/walvfs.test c0faffda13d045a96dfc541347886bb1a3d6f3205857fc98e683edfab766ea88 -F test/where.test 93738e224cd5e7819565a9f272c19fd0ee5893d9cd7f5238ce026bae09b8d710 +F test/wapp.tcl b440cd8cf57953d3a49e7ee81e6a18f18efdaf113b69f7d8482b0710a64566ec +F test/wapptest.tcl 78aff97afe76fd9728cf5f84710a772412735bc68a612b4789279072177a424e x +F test/where.test 0607caa5a1fbfe7b93b95705981b463a3a0408038f22ae6e9dc11b36902b0e95 F test/where2.test 478d2170637b9211f593120648858593bf2445a1 F test/where3.test 2341a294e17193a6b1699ea7f192124a5286ca6acfcc3f4b06d16c931fbcda2c F test/where4.test 4a371bfcc607f41d233701bdec33ac2972908ba8 @@ -1675,22 +1683,28 @@ F test/win32heap.test 10fd891266bd00af68671e702317726375e5407561d859be1aa04696f2 F test/win32lock.test fbf107c91d8f5512be5a5b87c4c42ab9fdd54972 F test/win32longpath.test 169c75a3b2e43481f4a62122510210c67b08f26d F test/win32nolock.test ac4f08811a562e45a5755e661f45ca85892bdbbc -F test/window1.test d141eba02ee4d7441dcb45148d776aded21992e8de6ddbbe2aae8151e5fad45e +F test/window1.test 8d453bfaa3f8f0873ba16ca1270c7368f18445065a0003a1b5954ac4e95797b4 F test/window2.tcl 9bfa842d8a62b0d36dc8c1b5972206393c43847433c6d75940b87fec93ce3143 F test/window2.test 8e6d2a1b9f54dfebee1cde961c8590cd87b4db45c50f44947a211e1b63c2a05e -F test/window3.tcl 577a3b1ff913208e5248c04dab9df17fd760ce159a752789e26d0cb4a5f91823 -F test/window3.test e274b7f8952ca4ed25996e0e45c047192b066e0aaff2a822d4293c8c4f1d8d98 -F test/window4.tcl 511425f6b0abf9b953df54cc9c7295cc7c25d78f4ed6f7a74b094eec0120eccb -F test/window4.test c5d6bf3403e4ade2f19df2afe4c16f29fb817c392c6c1c8017edb7165c191a62 +F test/window3.tcl acea6e86a4324a210fd608d06741010ca83ded9fde438341cb978c49928faf03 +F test/window3.test e9959a993c8a71e96433be8daaa1827d78b8921e4f12debd7bdbeb3c856ef3cb +F test/window4.tcl 5fbaab489677914ee5686b2008426e336daf88a2f58be7df92757f780a5ebf91 +F test/window4.test bf8f86586ce101bf98e2306e597fa24aadc96c58d70ba4d11f956cf8ca4e0be3 F test/window5.test d328dd18221217c49c144181975eea17339eaeaf0e9aa558cee3afb84652821e -F test/window6.test 5eae4ae7a590ccf1e605880969ca0bad3955616ac91cad3031baea38748badb3 -F test/windowfault.test 12ceb6bbb355d13e8fcd88c5731a57256dfdf77b9a7ae20842a76fcd4623df5b +F test/window6.test 465e608c021020fb0948a90200e154cd787bc910449e3dafee44c9ca5bd407fe +F test/window7.tcl 6a1210f05d40ec89c22960213a22cd3f98d4e2f2eb20646c83c8c30d4d76108f +F test/window7.test ce7f865241fdd1c5c4db869cd7bb2986c3be836bc2e73649a6846dd920f63e0f +F test/window8.tcl 9e9a82ae9eea90a4a83481d641a812b974980c38f9247f3b89a6e3c8bed45518 +F test/window8.test df187dc19921f7be0ab709d531d681bd80ccaac96a913a89ecee8b272b91d43f +F test/windowerr.tcl abf4d6d0c6d360213af98ed7d538295d905689e83692106f3ece0e3afb9d7f36 +F test/windowerr.test 675b5e6debfc9370bfacb0b91e2a93a8923512f92600b16f4ea70a1cd9b8e6e4 +F test/windowfault.test 16e906a2c4110c88372ff4bd5de59ac7397ec2f025912eff8e5677eedd126898 F test/with1.test a07b5aad7f77acdf13e52e8814ea94606fcc72e9ea4c99baf293e9d7c63940be F test/with2.test e0030e2f0267a910d6c0e4f46f2dfe941c1cc0d4f659ba69b3597728e7e8f1ab F test/with3.test 8d26920c88283e0a473ceebd3451554922108ce7b2a6a1157c47eb0a7011212c F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205 F test/withM.test 693b61765f2b387b5e3e24a4536e2e82de15ff64 -F test/without_rowid1.test 533add9100255e4cc430d371b3ecfb79f11f956b86c3a1b9d34413bf8e482d8f +F test/without_rowid1.test b5ec93f7df2c1d684e0923247dac6aca8888e088bf50a9f244c3933e0e813a72 F test/without_rowid2.test af260339f79d13cb220288b67cd287fbcf81ad99 F test/without_rowid3.test ea4b59dd1b0d7f5f5e4b7cca978cdb905752a9d7c57dc4344a591dba765a3691 F test/without_rowid4.test 4e08bcbaee0399f35d58b5581881e7a6243d458a @@ -1706,14 +1720,14 @@ F test/zipfilefault.test 44d4d7a7f7cca7521d569d7f71026b241d65a6b1757aa409c1a1688 F tool/GetFile.cs a15e08acb5dd7539b75ba23501581d7c2b462cb5 F tool/GetTclKit.bat 8995df40c4209808b31f24de0b58f90930239a234f7591e3675d45bfbb990c5d F tool/Replace.cs 02c67258801c2fb5f63231e0ac0f220b4b36ba91 -F tool/addopcodes.tcl 0288d5b26b9b35f4cb5affb76eec63f1dfce117bbc2020066708069ef60b86ff F tool/build-all-msvc.bat c12328d06c45fec8baada5949e3d5af54bf8c887 x F tool/build-shell.sh 950f47c6174f1eea171319438b93ba67ff5bf367 -F tool/cg_anno.tcl f95b0006c52cf7f0496b506343415b6ee3cdcdd3 x +F tool/cg_anno.tcl c1f875f5a4c9caca3d59937b16aff716f8b1883935f1b4c9ae23124705bc8099 x F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2 F tool/dbhash.c a06228aa21ebc4e6ea8daa486601d938499238a5 -F tool/dbtotxt.c 04e25f26be7c7743cdfb4111a8483de0b111925d6afeeb7559ade0ceb73f7f52 +F tool/dbtotxt.c b2221864a20fb391c46bd31bc1fbdc4a96f5c8a89bef58f421eb9b9c36b1702c F tool/dbtotxt.md c9a57af8739957ef36d2cfad5c4b1443ff3688ed33e4901ee200c8b651f43f3c +F tool/extract-sqlite3h.tcl 069ceab0cee26cba99952bfa08c0b23e35941c837acabe143f0c355d96c9e2eb x F tool/extract.c 054069d81b095fbdc189a6f5d4466e40380505e2 F tool/fast_vacuum.c 5ba0d6f5963a0a63bdc42840f678bad75b2ebce1 F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439 @@ -1732,7 +1746,7 @@ F tool/max-limits.c cbb635fbb37ae4d05f240bfb5b5270bb63c54439 F tool/mkautoconfamal.sh 422fc365358a2e92876ffc62971a0ff28ed472fc8bcf9de0df921c736fdeca5e F tool/mkccode.tcl 86463e68ce9c15d3041610fedd285ce32a5cf7a58fc88b3202b8b76837650dbe x F tool/mkctimec.tcl dd183b73ae1c28249669741c250525f0407e579a70482371668fd5f130d9feb3 -F tool/mkkeywordhash.c 1f7f2ac1d9f262c08b67faaca47e6a68262ff39113fa4b27d1db2843b4c33e73 +F tool/mkkeywordhash.c 537b1a11ec1829b51b633da3ba2cc889b4a3f7356b06a07423b6d4cce92c2350 F tool/mkmsvcmin.tcl cad0c7b54d7dd92bc87d59f36d4cc4f070eb2e625f14159dc2f5c4204e6a13ea F tool/mkopcodec.tcl d1b6362bd3aa80d5520d4d6f3765badf01f6c43c F tool/mkopcodeh.tcl 352a4319c0ad869eb26442bf7c3b015aa15594c21f1cce5a6420dbe999367c21 @@ -1747,14 +1761,14 @@ F tool/mksqlite3h.tcl 080873e3856eceb9d289a08a00c4b30f875ea3feadcbece796bd509b15 F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b F tool/mkvsix.tcl b9e0777a213c23156b6542842c238479e496ebf5 F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091 -F tool/omittest.tcl dfc8b18a23e9e5289104145b712cdb887c2d840c2d70dc09ce5dbeba8ed8d47c +F tool/omittest.tcl 27f9413c3343bac200a28d81e8234adb0f5e141c4771893cb19b40235a91f1e0 F tool/opcodesum.tcl 740ed206ba8c5040018988129abbf3089a0ccf4a F tool/pagesig.c ff0ca355fd3c2398e933da5e22439bbff89b803b F tool/replace.tcl 60f91e8dd06ab81f74d213ecbd9c9945f32ac048 F tool/restore_jrnl.tcl 6957a34f8f1f0f8285e07536225ec3b292a9024a F tool/rollback-test.c 9fc98427d1e23e84429d7e6d07d9094fbdec65a5 F tool/run-speed-test.sh f95d19fd669b68c4c38b6b475242841d47c66076 -F tool/showdb.c e6bc9dba233bf1b57ca0a525a2bba762db4e223de84990739db3f09c46151b1e +F tool/showdb.c af978d1437562776fa4d94bf0cb772314c464e71ef24134a6e2301564ae60bc2 F tool/showjournal.c 5bad7ae8784a43d2b270d953060423b8bd480818 F tool/showlocks.c 9920bcc64f58378ff1118caead34147201f48c68 F tool/showshm.c a0ab6ec32dd1f11218ca2a4018f8fb875b59414801ab8ceed8b2e69b7b45a809 @@ -1776,7 +1790,7 @@ F tool/sqltclsh.tcl 862f4cf1418df5e1315b5db3b5ebe88969e2a784525af5fbf9596592f14e F tool/srcck1.c 371de5363b70154012955544f86fdee8f6e5326f F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43 F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d -F tool/symbols.sh c5a617b8c61a0926747a56c65f5671ef8ac0e148 +F tool/symbols.sh 1612bd947750e21e7b47befad5f6b3825b06cce0705441f903bf35ced65ae9b9 F tool/varint.c 5d94cb5003db9dbbcbcc5df08d66f16071aee003 F tool/vdbe-compress.tcl 5926c71f9c12d2ab73ef35c29376e756eb68361c F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f @@ -1804,11 +1818,11 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P a21ffcd8176672e791c11e7d3869878b0655e9f7fb3646378421fb7480d4d8c6 -R a79d07126ad692dd98c735ebc3ce8975 +P af61a2fc45a0fa1277d7453779238b77de4c298a9f60714b7dc62ddca5874f80 +R 53d48b50e3fea254b204992be6aac766 T +bgcolor * #d0c0ff T +sym-release * -T +sym-version-3.27.2 * +T +sym-version-3.28.0 * U drh -Z 1721b9485efb0ba623f21704b685d9c7 +Z 50f60d1cc2f388d0c03013011d963653 # Remove this line to create a well-formed manifest. diff --git a/manifest.uuid b/manifest.uuid index c42113e3e7..24a372ef95 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7 +884b4b7e502b4e991677b53971277adfaf0a04a284f8e483e2553d0f83156b50 diff --git a/src/alter.c b/src/alter.c index e186338587..d71074795b 100644 --- a/src/alter.c +++ b/src/alter.c @@ -166,15 +166,15 @@ void sqlite3AlterRenameTable( } #endif - /* Begin a transaction for database iDb. - ** Then modify the schema cookie (since the ALTER TABLE modifies the - ** schema). Open a statement transaction if the table is a virtual - ** table. - */ + /* Begin a transaction for database iDb. Then modify the schema cookie + ** (since the ALTER TABLE modifies the schema). Call sqlite3MayAbort(), + ** as the scalar functions (e.g. sqlite_rename_table()) invoked by the + ** nested SQL may raise an exception. */ v = sqlite3GetVdbe(pParse); if( v==0 ){ goto exit_rename_table; } + sqlite3MayAbort(pParse); /* figure out how many UTF-8 characters are in zName */ zTabName = pTab->zName; @@ -243,7 +243,6 @@ void sqlite3AlterRenameTable( int i = ++pParse->nMem; sqlite3VdbeLoadString(v, i, zName); sqlite3VdbeAddOp4(v, OP_VRename, i, 0, 0,(const char*)pVTab, P4_VTAB); - sqlite3MayAbort(pParse); } #endif @@ -564,6 +563,7 @@ void sqlite3AlterRenameColumn( ** uses the sqlite_rename_column() SQL function to compute the new ** CREATE statement text for the sqlite_master table. */ + sqlite3MayAbort(pParse); zNew = sqlite3NameFromToken(db, pNew); if( !zNew ) goto exit_rename_column; assert( pNew->n>0 ); diff --git a/src/attach.c b/src/attach.c index 224d120b6f..55e0eb5363 100644 --- a/src/attach.c +++ b/src/attach.c @@ -234,12 +234,14 @@ static void attachFunc( sqlite3BtreeEnterAll(db); db->init.iDb = 0; db->mDbFlags &= ~(DBFLAG_SchemaKnownOk); - rc = sqlite3Init(db, &zErrDyn); + if( !REOPEN_AS_MEMDB(db) ){ + rc = sqlite3Init(db, &zErrDyn); + } sqlite3BtreeLeaveAll(db); assert( zErrDyn==0 || rc!=SQLITE_OK ); } #ifdef SQLITE_USER_AUTHENTICATION - if( rc==SQLITE_OK ){ + if( rc==SQLITE_OK && !REOPEN_AS_MEMDB(db) ){ u8 newAuth = 0; rc = sqlite3UserAuthCheckLogin(db, zName, &newAuth); if( newAuthauth.authLevel ){ diff --git a/src/btree.c b/src/btree.c index 3b7ef906c4..b31f74e794 100644 --- a/src/btree.c +++ b/src/btree.c @@ -833,14 +833,18 @@ static int btreeMoveto( */ static int btreeRestoreCursorPosition(BtCursor *pCur){ int rc; - int skipNext; + int skipNext = 0; assert( cursorOwnsBtShared(pCur) ); assert( pCur->eState>=CURSOR_REQUIRESEEK ); if( pCur->eState==CURSOR_FAULT ){ return pCur->skipNext; } pCur->eState = CURSOR_INVALID; - rc = btreeMoveto(pCur, pCur->pKey, pCur->nKey, 0, &skipNext); + if( sqlite3FaultSim(410) ){ + rc = SQLITE_IOERR; + }else{ + rc = btreeMoveto(pCur, pCur->pKey, pCur->nKey, 0, &skipNext); + } if( rc==SQLITE_OK ){ sqlite3_free(pCur->pKey); pCur->pKey = 0; @@ -1421,7 +1425,7 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ hdr = pPage->hdrOffset; cellOffset = pPage->cellOffset; nCell = pPage->nCell; - assert( nCell==get2byte(&data[hdr+3]) ); + assert( nCell==get2byte(&data[hdr+3]) || CORRUPT_DB ); iCellFirst = cellOffset + 2*nCell; usableSize = pPage->pBt->usableSize; @@ -1432,11 +1436,7 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ ** reconstruct the entire page. */ if( (int)data[hdr+7]<=nMaxFrag ){ int iFree = get2byte(&data[hdr+1]); - - /* If the initial freeblock offset were out of bounds, that would - ** have been detected by btreeInitPage() when it was computing the - ** number of free bytes on the page. */ - assert( iFree<=usableSize-4 ); + if( iFree>usableSize-4 ) return SQLITE_CORRUPT_PAGE(pPage); if( iFree ){ int iFree2 = get2byte(&data[iFree]); if( iFree2>usableSize-4 ) return SQLITE_CORRUPT_PAGE(pPage); @@ -1455,7 +1455,10 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ if( iFree2+sz2 > usableSize ) return SQLITE_CORRUPT_PAGE(pPage); memmove(&data[iFree+sz+sz2], &data[iFree+sz], iFree2-(iFree+sz)); sz += sz2; + }else if( iFree+sz>usableSize ){ + return SQLITE_CORRUPT_PAGE(pPage); } + cbrk = top+sz; assert( cbrk+(iFree-top) <= usableSize ); memmove(&data[cbrk], &data[top], iFree-top); @@ -1506,6 +1509,7 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ data[hdr+7] = 0; defragment_out: + assert( pPage->nFree>=0 ); if( data[hdr+7]+cbrk-iCellFirst!=pPage->nFree ){ return SQLITE_CORRUPT_PAGE(pPage); } @@ -1533,16 +1537,16 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ ** causes the fragmentation count to exceed 60. */ static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc){ - const int hdr = pPg->hdrOffset; - u8 * const aData = pPg->aData; - int iAddr = hdr + 1; - int pc = get2byte(&aData[iAddr]); - int x; - int usableSize = pPg->pBt->usableSize; - int size; /* Size of the free slot */ + const int hdr = pPg->hdrOffset; /* Offset to page header */ + u8 * const aData = pPg->aData; /* Page data */ + int iAddr = hdr + 1; /* Address of ptr to pc */ + int pc = get2byte(&aData[iAddr]); /* Address of a free slot */ + int x; /* Excess size of the slot */ + int maxPC = pPg->pBt->usableSize - nByte; /* Max address for a usable slot */ + int size; /* Size of the free slot */ assert( pc>0 ); - while( pc<=usableSize-4 ){ + while( pc<=maxPC ){ /* EVIDENCE-OF: R-22710-53328 The third and fourth bytes of each ** freeblock form a big-endian integer which is the size of the freeblock ** in bytes, including the 4-byte header. */ @@ -1550,10 +1554,7 @@ static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc){ if( (x = size - nByte)>=0 ){ testcase( x==4 ); testcase( x==3 ); - if( size+pc > usableSize ){ - *pRc = SQLITE_CORRUPT_PAGE(pPg); - return 0; - }else if( x<4 ){ + if( x<4 ){ /* EVIDENCE-OF: R-11498-58022 In a well-formed b-tree page, the total ** number of bytes in fragments may not exceed 60. */ if( aData[hdr+7]>57 ) return 0; @@ -1562,21 +1563,31 @@ static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc){ ** fragmented bytes within the page. */ memcpy(&aData[iAddr], &aData[pc], 2); aData[hdr+7] += (u8)x; + }else if( x+pc > maxPC ){ + /* This slot extends off the end of the usable part of the page */ + *pRc = SQLITE_CORRUPT_PAGE(pPg); + return 0; }else{ /* The slot remains on the free-list. Reduce its size to account - ** for the portion used by the new allocation. */ + ** for the portion used by the new allocation. */ put2byte(&aData[pc+2], x); } return &aData[pc + x]; } iAddr = pc; pc = get2byte(&aData[pc]); - if( pcmaxPC+nByte-4 ){ + /* The free slot chain extends off the end of the page */ *pRc = SQLITE_CORRUPT_PAGE(pPg); } - return 0; } @@ -1626,9 +1637,9 @@ static int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ } } - /* If there is enough space between gap and top for one more cell pointer - ** array entry offset, and if the freelist is not empty, then search the - ** freelist looking for a free slot big enough to satisfy the request. + /* If there is enough space between gap and top for one more cell pointer, + ** and if the freelist is not empty, then search the + ** freelist looking for a slot big enough to satisfy the request. */ testcase( gap+2==top ); testcase( gap+1==top ); @@ -1650,6 +1661,7 @@ static int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ testcase( gap+2+nByte==top ); if( gap+2+nByte>top ){ assert( pPage->nCell>0 || CORRUPT_DB ); + assert( pPage->nFree>=0 ); rc = defragmentPage(pPage, MIN(4, pPage->nFree - (2+nByte))); if( rc ) return rc; top = get2byteNotZero(&data[hdr+5]); @@ -1658,7 +1670,7 @@ static int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ /* Allocate memory from the gap in between the cell pointer array - ** and the cell content area. The btreeInitPage() call has already + ** and the cell content area. The btreeComputeFreeSpace() call has already ** validated the freelist. Given that the freelist is valid, there ** is no way that the allocation can extend off the end of the page. ** The assert() below verifies the previous sentence. @@ -1677,7 +1689,7 @@ static int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ ** ** Adjacent freeblocks are coalesced. ** -** Note that even though the freeblock list was checked by btreeInitPage(), +** Even though the freeblock list was checked by btreeComputeFreeSpace(), ** that routine will not detect overlap between cells or freeblocks. Nor ** does it detect cells or freeblocks that encrouch into the reserved bytes ** at the end of the page. So do additional corruption checks inside this @@ -1839,21 +1851,14 @@ static int decodeFlags(MemPage *pPage, int flagByte){ } /* -** Initialize the auxiliary information for a disk block. -** -** Return SQLITE_OK on success. If we see that the page does -** not contain a well-formed database page, then return -** SQLITE_CORRUPT. Note that a return of SQLITE_OK does not -** guarantee that the page is well-formed. It only shows that -** we failed to detect any corruption. +** Compute the amount of freespace on the page. In other words, fill +** in the pPage->nFree field. */ -static int btreeInitPage(MemPage *pPage){ +static int btreeComputeFreeSpace(MemPage *pPage){ int pc; /* Address of a freeblock within pPage->aData[] */ u8 hdr; /* Offset to beginning of page header */ u8 *data; /* Equal to pPage->aData */ - BtShared *pBt; /* The main btree structure */ int usableSize; /* Amount of usable space on each page */ - u16 cellOffset; /* Offset from start of page to first cell pointer */ int nFree; /* Number of unused bytes on the page */ int top; /* First byte of the cell content area */ int iCellFirst; /* First allowable cell or freeblock offset */ @@ -1865,71 +1870,18 @@ static int btreeInitPage(MemPage *pPage){ assert( pPage->pgno==sqlite3PagerPagenumber(pPage->pDbPage) ); assert( pPage == sqlite3PagerGetExtra(pPage->pDbPage) ); assert( pPage->aData == sqlite3PagerGetData(pPage->pDbPage) ); - assert( pPage->isInit==0 ); + assert( pPage->isInit==1 ); + assert( pPage->nFree<0 ); - pBt = pPage->pBt; + usableSize = pPage->pBt->usableSize; hdr = pPage->hdrOffset; data = pPage->aData; - /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating - ** the b-tree page type. */ - if( decodeFlags(pPage, data[hdr]) ){ - return SQLITE_CORRUPT_PAGE(pPage); - } - assert( pBt->pageSize>=512 && pBt->pageSize<=65536 ); - pPage->maskPage = (u16)(pBt->pageSize - 1); - pPage->nOverflow = 0; - usableSize = pBt->usableSize; - pPage->cellOffset = cellOffset = hdr + 8 + pPage->childPtrSize; - pPage->aDataEnd = &data[usableSize]; - pPage->aCellIdx = &data[cellOffset]; - pPage->aDataOfst = &data[pPage->childPtrSize]; /* EVIDENCE-OF: R-58015-48175 The two-byte integer at offset 5 designates ** the start of the cell content area. A zero value for this integer is ** interpreted as 65536. */ top = get2byteNotZero(&data[hdr+5]); - /* EVIDENCE-OF: R-37002-32774 The two-byte integer at offset 3 gives the - ** number of cells on the page. */ - pPage->nCell = get2byte(&data[hdr+3]); - if( pPage->nCell>MX_CELL(pBt) ){ - /* To many cells for a single page. The page must be corrupt */ - return SQLITE_CORRUPT_PAGE(pPage); - } - testcase( pPage->nCell==MX_CELL(pBt) ); - /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only - ** possible for a root page of a table that contains no rows) then the - ** offset to the cell content area will equal the page size minus the - ** bytes of reserved space. */ - assert( pPage->nCell>0 || top==usableSize || CORRUPT_DB ); - - /* A malformed database page might cause us to read past the end - ** of page when parsing a cell. - ** - ** The following block of code checks early to see if a cell extends - ** past the end of a page boundary and causes SQLITE_CORRUPT to be - ** returned if it does. - */ - iCellFirst = cellOffset + 2*pPage->nCell; + iCellFirst = hdr + 8 + pPage->childPtrSize + 2*pPage->nCell; iCellLast = usableSize - 4; - if( pBt->db->flags & SQLITE_CellSizeCk ){ - int i; /* Index into the cell pointer array */ - int sz; /* Size of a cell */ - - if( !pPage->leaf ) iCellLast--; - for(i=0; inCell; i++){ - pc = get2byteAligned(&data[cellOffset+i*2]); - testcase( pc==iCellFirst ); - testcase( pc==iCellLast ); - if( pciCellLast ){ - return SQLITE_CORRUPT_PAGE(pPage); - } - sz = pPage->xCellSize(pPage, &data[pc]); - testcase( pc+sz==usableSize ); - if( pc+sz>usableSize ){ - return SQLITE_CORRUPT_PAGE(pPage); - } - } - if( !pPage->leaf ) iCellLast++; - } /* Compute the total free space on the page ** EVIDENCE-OF: R-23588-34450 The two-byte integer at offset 1 gives the @@ -1977,7 +1929,100 @@ static int btreeInitPage(MemPage *pPage){ return SQLITE_CORRUPT_PAGE(pPage); } pPage->nFree = (u16)(nFree - iCellFirst); + return SQLITE_OK; +} + +/* +** Do additional sanity check after btreeInitPage() if +** PRAGMA cell_size_check=ON +*/ +static SQLITE_NOINLINE int btreeCellSizeCheck(MemPage *pPage){ + int iCellFirst; /* First allowable cell or freeblock offset */ + int iCellLast; /* Last possible cell or freeblock offset */ + int i; /* Index into the cell pointer array */ + int sz; /* Size of a cell */ + int pc; /* Address of a freeblock within pPage->aData[] */ + u8 *data; /* Equal to pPage->aData */ + int usableSize; /* Maximum usable space on the page */ + int cellOffset; /* Start of cell content area */ + + iCellFirst = pPage->cellOffset + 2*pPage->nCell; + usableSize = pPage->pBt->usableSize; + iCellLast = usableSize - 4; + data = pPage->aData; + cellOffset = pPage->cellOffset; + if( !pPage->leaf ) iCellLast--; + for(i=0; inCell; i++){ + pc = get2byteAligned(&data[cellOffset+i*2]); + testcase( pc==iCellFirst ); + testcase( pc==iCellLast ); + if( pciCellLast ){ + return SQLITE_CORRUPT_PAGE(pPage); + } + sz = pPage->xCellSize(pPage, &data[pc]); + testcase( pc+sz==usableSize ); + if( pc+sz>usableSize ){ + return SQLITE_CORRUPT_PAGE(pPage); + } + } + return SQLITE_OK; +} + +/* +** Initialize the auxiliary information for a disk block. +** +** Return SQLITE_OK on success. If we see that the page does +** not contain a well-formed database page, then return +** SQLITE_CORRUPT. Note that a return of SQLITE_OK does not +** guarantee that the page is well-formed. It only shows that +** we failed to detect any corruption. +*/ +static int btreeInitPage(MemPage *pPage){ + u8 *data; /* Equal to pPage->aData */ + BtShared *pBt; /* The main btree structure */ + + assert( pPage->pBt!=0 ); + assert( pPage->pBt->db!=0 ); + assert( sqlite3_mutex_held(pPage->pBt->mutex) ); + assert( pPage->pgno==sqlite3PagerPagenumber(pPage->pDbPage) ); + assert( pPage == sqlite3PagerGetExtra(pPage->pDbPage) ); + assert( pPage->aData == sqlite3PagerGetData(pPage->pDbPage) ); + assert( pPage->isInit==0 ); + + pBt = pPage->pBt; + data = pPage->aData + pPage->hdrOffset; + /* EVIDENCE-OF: R-28594-02890 The one-byte flag at offset 0 indicating + ** the b-tree page type. */ + if( decodeFlags(pPage, data[0]) ){ + return SQLITE_CORRUPT_PAGE(pPage); + } + assert( pBt->pageSize>=512 && pBt->pageSize<=65536 ); + pPage->maskPage = (u16)(pBt->pageSize - 1); + pPage->nOverflow = 0; + pPage->cellOffset = pPage->hdrOffset + 8 + pPage->childPtrSize; + pPage->aCellIdx = data + pPage->childPtrSize + 8; + pPage->aDataEnd = pPage->aData + pBt->usableSize; + pPage->aDataOfst = pPage->aData + pPage->childPtrSize; + /* EVIDENCE-OF: R-37002-32774 The two-byte integer at offset 3 gives the + ** number of cells on the page. */ + pPage->nCell = get2byte(&data[3]); + if( pPage->nCell>MX_CELL(pBt) ){ + /* To many cells for a single page. The page must be corrupt */ + return SQLITE_CORRUPT_PAGE(pPage); + } + testcase( pPage->nCell==MX_CELL(pBt) ); + /* EVIDENCE-OF: R-24089-57979 If a page contains no cells (which is only + ** possible for a root page of a table that contains no rows) then the + ** offset to the cell content area will equal the page size minus the + ** bytes of reserved space. */ + assert( pPage->nCell>0 + || get2byteNotZero(&data[5])==(int)pBt->usableSize + || CORRUPT_DB ); + pPage->nFree = -1; /* Indicate that this value is yet uncomputed */ pPage->isInit = 1; + if( pBt->db->flags & SQLITE_CellSizeCk ){ + return btreeCellSizeCheck(pPage); + } return SQLITE_OK; } @@ -2120,19 +2165,18 @@ static int getAndInitPage( if( pgno>btreePagecount(pBt) ){ rc = SQLITE_CORRUPT_BKPT; - goto getAndInitPage_error; + goto getAndInitPage_error1; } rc = sqlite3PagerGet(pBt->pPager, pgno, (DbPage**)&pDbPage, bReadOnly); if( rc ){ - goto getAndInitPage_error; + goto getAndInitPage_error1; } *ppPage = (MemPage*)sqlite3PagerGetExtra(pDbPage); if( (*ppPage)->isInit==0 ){ btreePageFromDbPage(pDbPage, pgno, pBt); rc = btreeInitPage(*ppPage); if( rc!=SQLITE_OK ){ - releasePage(*ppPage); - goto getAndInitPage_error; + goto getAndInitPage_error2; } } assert( (*ppPage)->pgno==pgno ); @@ -2142,12 +2186,13 @@ static int getAndInitPage( ** compatible with the root page. */ if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){ rc = SQLITE_CORRUPT_PGNO(pgno); - releasePage(*ppPage); - goto getAndInitPage_error; + goto getAndInitPage_error2; } return SQLITE_OK; -getAndInitPage_error: +getAndInitPage_error2: + releasePage(*ppPage); +getAndInitPage_error1: if( pCur ){ pCur->iPage--; pCur->pPage = pCur->apPage[pCur->iPage]; @@ -5228,23 +5273,6 @@ int sqlite3BtreeFirst(BtCursor *pCur, int *pRes){ return rc; } -/* -** This function is a no-op if cursor pCur does not point to a valid row. -** Otherwise, if pCur is valid, configure it so that the next call to -** sqlite3BtreeNext() is a no-op. -*/ -#ifndef SQLITE_OMIT_WINDOWFUNC -void sqlite3BtreeSkipNext(BtCursor *pCur){ - /* We believe that the cursor must always be in the valid state when - ** this routine is called, but the proof is difficult, so we add an - ** ALWaYS() test just in case we are wrong. */ - if( ALWAYS(pCur->eState==CURSOR_VALID) ){ - pCur->eState = CURSOR_SKIPNEXT; - pCur->skipNext = 1; - } -} -#endif /* SQLITE_OMIT_WINDOWFUNC */ - /* Move the cursor to the last entry in the table. Return SQLITE_OK ** on success. Set *pRes to 0 if the cursor actually points to something ** or set *pRes to 1 if the table is empty. @@ -5510,7 +5538,7 @@ int sqlite3BtreeMovetoUnpacked( sqlite3_free(pCellKey); goto moveto_finish; } - c = xRecordCompare(nCell, pCellKey, pIdxKey); + c = sqlite3VdbeRecordCompare(nCell, pCellKey, pIdxKey); sqlite3_free(pCellKey); } assert( @@ -6142,13 +6170,15 @@ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){ MemPage *pPage1 = pBt->pPage1; /* Local reference to page 1 */ MemPage *pPage; /* Page being freed. May be NULL. */ int rc; /* Return Code */ - int nFree; /* Initial number of pages on free-list */ + u32 nFree; /* Initial number of pages on free-list */ assert( sqlite3_mutex_held(pBt->mutex) ); assert( CORRUPT_DB || iPage>1 ); assert( !pMemPage || pMemPage->pgno==iPage ); - if( iPage<2 ) return SQLITE_CORRUPT_BKPT; + if( iPage<2 || iPage>pBt->nPage ){ + return SQLITE_CORRUPT_BKPT; + } if( pMemPage ){ pPage = pMemPage; sqlite3PagerRef(pPage->pDbPage); @@ -6559,6 +6589,7 @@ static void dropCell(MemPage *pPage, int idx, int sz, int *pRC){ assert( CORRUPT_DB || sz==cellSize(pPage, idx) ); assert( sqlite3PagerIswriteable(pPage->pDbPage) ); assert( sqlite3_mutex_held(pPage->pBt->mutex) ); + assert( pPage->nFree>=0 ); data = pPage->aData; ptr = &pPage->aCellIdx[2*idx]; pc = get2byte(ptr); @@ -6629,6 +6660,7 @@ static void insertCell( ** might be less than 8 (leaf-size + pointer) on the interior node. Hence ** the term after the || in the following assert(). */ assert( sz==pPage->xCellSize(pPage, pCell) || (sz==8 && iChild>0) ); + assert( pPage->nFree>=0 ); if( pPage->nOverflow || sz+2>pPage->nFree ){ if( pTemp ){ memcpy(pTemp, pCell, sz); @@ -6686,7 +6718,7 @@ static void insertCell( pPage->nCell++; /* increment the cell count */ if( (++data[pPage->hdrOffset+4])==0 ) data[pPage->hdrOffset+3]++; - assert( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell ); + assert( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell || CORRUPT_DB ); #ifndef SQLITE_OMIT_AUTOVACUUM if( pPage->pBt->autoVacuum ){ /* The cell may contain a pointer to an overflow page. If so, write @@ -6773,8 +6805,13 @@ static void insertCell( ** are used and they point to the leaf pages only, and the ixNx value are: ** ** ixNx[0] = Number of cells in Child-1. -** ixNx[1] = Number of cells in Child-1 and Child-2 + 1 for 1st divider. -** ixNx[2] = Number of cells in Child-1 and Child-2 + both divider cells +** ixNx[1] = Number of cells in Child-1 and Child-2. +** ixNx[2] = Total number of cells. +** +** Sometimes when deleting, a child page can have zero cells. In those +** cases, ixNx[] entries with higher indexes, and the corresponding apEnd[] +** entries, shift down. The end result is that each ixNx[] entry should +** be larger than the previous */ typedef struct CellArray CellArray; struct CellArray { @@ -7103,8 +7140,9 @@ static int editPage( int iCell = (iOld + pPg->aiOvfl[i]) - iNew; if( iCell>=0 && iCellaCellIdx[iCell * 2]; - assert( nCell>=iCell ); - memmove(&pCellptr[2], pCellptr, (nCell - iCell) * 2); + if( nCell>iCell ){ + memmove(&pCellptr[2], pCellptr, (nCell - iCell) * 2); + } nCell++; if( pageInsertArray( pPg, pBegin, &pData, pCellptr, @@ -7180,8 +7218,10 @@ static int balance_quick(MemPage *pParent, MemPage *pPage, u8 *pSpace){ assert( sqlite3_mutex_held(pPage->pBt->mutex) ); assert( sqlite3PagerIswriteable(pParent->pDbPage) ); assert( pPage->nOverflow==1 ); - + if( pPage->nCell==0 ) return SQLITE_CORRUPT_BKPT; /* dbfuzz001.test */ + assert( pPage->nFree>=0 ); + assert( pParent->nFree>=0 ); /* Allocate a new page. This page will become the right-sibling of ** pPage. Make the parent page writable, so that the new divider cell @@ -7351,6 +7391,7 @@ static void copyNodeContent(MemPage *pFrom, MemPage *pTo, int *pRC){ */ pTo->isInit = 0; rc = btreeInitPage(pTo); + if( rc==SQLITE_OK ) rc = btreeComputeFreeSpace(pTo); if( rc!=SQLITE_OK ){ *pRC = rc; return; @@ -7459,6 +7500,7 @@ static int balance_nonroot( if( !aOvflSpace ){ return SQLITE_NOMEM_BKPT; } + assert( pParent->nFree>=0 ); /* Find the sibling pages to balance. Also locate the cells in pParent ** that divide the siblings. An attempt is made to find NN siblings on @@ -7498,7 +7540,13 @@ static int balance_nonroot( memset(apOld, 0, (i+1)*sizeof(MemPage*)); goto balance_cleanup; } - nMaxCells += 1+apOld[i]->nCell+apOld[i]->nOverflow; + if( apOld[i]->nFree<0 ){ + rc = btreeComputeFreeSpace(apOld[i]); + if( rc ){ + memset(apOld, 0, (i)*sizeof(MemPage*)); + goto balance_cleanup; + } + } if( (i--)==0 ) break; if( pParent->nOverflow && i+nxDiv==pParent->aiOvfl[0] ){ @@ -7542,6 +7590,7 @@ static int balance_nonroot( /* Make nMaxCells a multiple of 4 in order to preserve 8-byte ** alignment */ + nMaxCells = nOld*(MX_CELL(pBt) + ArraySize(pParent->apOvfl)); nMaxCells = (nMaxCells + 3)&~3; /* @@ -7552,7 +7601,7 @@ static int balance_nonroot( + nMaxCells*sizeof(u16) /* b.szCell */ + pBt->pageSize; /* aSpace1 */ - assert( szScratch<=6*(int)pBt->pageSize ); + assert( szScratch<=7*(int)pBt->pageSize ); b.apCell = sqlite3StackAllocRaw(0, szScratch ); if( b.apCell==0 ){ rc = SQLITE_NOMEM_BKPT; @@ -7692,11 +7741,15 @@ static int balance_nonroot( MemPage *p = apOld[i]; b.apEnd[k] = p->aDataEnd; b.ixNx[k] = cntOld[i]; + if( k && b.ixNx[k]==b.ixNx[k-1] ){ + k--; /* Omit b.ixNx[] entry for child pages with no cells */ + } if( !leafData ){ k++; b.apEnd[k] = pParent->aDataEnd; b.ixNx[k] = cntOld[i]+1; } + assert( p->nFree>=0 ); szNew[i] = usableSpace - p->nFree; for(j=0; jnOverflow; j++){ szNew[i] += 2 + p->xCellSize(p, p->apOvfl[j]); @@ -7922,18 +7975,17 @@ static int balance_nonroot( if( ISAUTOVACUUM ){ MemPage *pOld; MemPage *pNew = pOld = apNew[0]; - u8 *aOld = pNew->aData; int cntOldNext = pNew->nCell + pNew->nOverflow; - int usableSize = pBt->usableSize; int iNew = 0; int iOld = 0; for(i=0; inCell + pOld->nOverflow + !leafData; - aOld = pOld->aData; } if( i==cntNew[iNew] ){ pNew = apNew[++iNew]; @@ -7948,7 +8000,7 @@ static int balance_nonroot( ** overflow cell), we can skip updating the pointer map entries. */ if( iOld>=nNew || pNew->pgno!=aPgno[iOld] - || !SQLITE_WITHIN(pCell,aOld,&aOld[usableSize]) + || !SQLITE_WITHIN(pCell,pOld->aData,pOld->aDataEnd) ){ if( !leafCorrection ){ ptrmapPut(pBt, get4byte(pCell), PTRMAP_BTREE, pNew->pgno, &rc); @@ -8099,7 +8151,8 @@ static int balance_nonroot( rc = defragmentPage(apNew[0], -1); testcase( rc!=SQLITE_OK ); assert( apNew[0]->nFree == - (get2byte(&apNew[0]->aData[5])-apNew[0]->cellOffset-apNew[0]->nCell*2) + (get2byteNotZero(&apNew[0]->aData[5]) - apNew[0]->cellOffset + - apNew[0]->nCell*2) || rc!=SQLITE_OK ); copyNodeContent(apNew[0], pParent, &rc); @@ -8198,7 +8251,7 @@ static int balance_deeper(MemPage *pRoot, MemPage **ppChild){ } assert( sqlite3PagerIswriteable(pChild->pDbPage) ); assert( sqlite3PagerIswriteable(pRoot->pDbPage) ); - assert( pChild->nCell==pRoot->nCell ); + assert( pChild->nCell==pRoot->nCell || CORRUPT_DB ); TRACE(("BALANCE: copy root %d into %d\n", pRoot->pgno, pChild->pgno)); @@ -8240,6 +8293,7 @@ static int balance(BtCursor *pCur){ int iPage = pCur->iPage; MemPage *pPage = pCur->pPage; + if( NEVER(pPage->nFree<0) && btreeComputeFreeSpace(pPage) ) break; if( iPage==0 ){ if( pPage->nOverflow ){ /* The root page of the b-tree is overfull. In this case call the @@ -8268,6 +8322,9 @@ static int balance(BtCursor *pCur){ int const iIdx = pCur->aiIdx[iPage-1]; rc = sqlite3PagerWrite(pParent->pDbPage); + if( rc==SQLITE_OK && pParent->nFree<0 ){ + rc = btreeComputeFreeSpace(pParent); + } if( rc==SQLITE_OK ){ #ifndef SQLITE_OMIT_QUICKBALANCE if( pPage->intKeyLeaf @@ -8614,6 +8671,10 @@ int sqlite3BtreeInsert( pPage = pCur->pPage; assert( pPage->intKey || pX->nKey>=0 ); assert( pPage->leaf || !pPage->intKey ); + if( pPage->nFree<0 ){ + rc = btreeComputeFreeSpace(pPage); + if( rc ) return rc; + } TRACE(("INSERT: table=%d nkey=%lld ndata=%d page=%d %s\n", pCur->pgnoRoot, pX->nKey, pX->nData, pPage->pgno, @@ -8756,14 +8817,18 @@ int sqlite3BtreeDelete(BtCursor *pCur, u8 flags){ assert( pCur->curFlags & BTCF_WriteFlag ); assert( hasSharedCacheTableLock(p, pCur->pgnoRoot, pCur->pKeyInfo!=0, 2) ); assert( !hasReadConflicts(p, pCur->pgnoRoot) ); - assert( pCur->ixpPage->nCell ); - assert( pCur->eState==CURSOR_VALID ); assert( (flags & ~(BTREE_SAVEPOSITION | BTREE_AUXDELETE))==0 ); + if( pCur->eState==CURSOR_REQUIRESEEK ){ + rc = btreeRestoreCursorPosition(pCur); + if( rc ) return rc; + } + assert( pCur->eState==CURSOR_VALID ); iCellDepth = pCur->iPage; iCellIdx = pCur->ix; pPage = pCur->pPage; pCell = findCell(pPage, iCellIdx); + if( pPage->nFree<0 && btreeComputeFreeSpace(pPage) ) return SQLITE_CORRUPT; /* If the bPreserve flag is set to true, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -8834,6 +8899,10 @@ int sqlite3BtreeDelete(BtCursor *pCur, u8 flags){ Pgno n; unsigned char *pTmp; + if( pLeaf->nFree<0 ){ + rc = btreeComputeFreeSpace(pLeaf); + if( rc ) return rc; + } if( iCellDepthiPage-1 ){ n = pCur->apPage[iCellDepth+1]->pgno; }else{ @@ -9192,6 +9261,9 @@ static int btreeDropTable(Btree *p, Pgno iTable, int *piMoved){ assert( sqlite3BtreeHoldsMutex(p) ); assert( p->inTrans==TRANS_WRITE ); assert( iTable>=2 ); + if( iTable>btreePagecount(pBt) ){ + return SQLITE_CORRUPT_BKPT; + } rc = btreeGetPage(pBt, (Pgno)iTable, &pPage, 0); if( rc ) return rc; @@ -9540,10 +9612,10 @@ static void checkList( IntegrityCk *pCheck, /* Integrity checking context */ int isFreeList, /* True for a freelist. False for overflow page list */ int iPage, /* Page number for first page in the list */ - int N /* Expected number of pages in the list */ + u32 N /* Expected number of pages in the list */ ){ int i; - int expected = N; + u32 expected = N; int nErrAtStart = pCheck->nErr; while( iPage!=0 && pCheck->mxErr ){ DbPage *pOvflPage; @@ -9725,6 +9797,11 @@ static int checkTreePage( "btreeInitPage() returns error code %d", rc); goto end_of_check; } + if( (rc = btreeComputeFreeSpace(pPage))!=0 ){ + assert( rc==SQLITE_CORRUPT ); + checkAppendMsg(pCheck, "free space corruption", rc); + goto end_of_check; + } data = pPage->aData; hdr = pPage->hdrOffset; @@ -9797,7 +9874,7 @@ static int checkTreePage( /* Check the content overflow list */ if( info.nPayload>info.nLocal ){ - int nPage; /* Number of pages on the overflow chain */ + u32 nPage; /* Number of pages on the overflow chain */ Pgno pgnoOvfl; /* First page of the overflow chain */ assert( pc + info.nSize - 4 <= usableSize ); nPage = (info.nPayload - info.nLocal + usableSize - 5)/(usableSize - 4); @@ -9857,9 +9934,9 @@ static int checkTreePage( i = get2byte(&data[hdr+1]); while( i>0 ){ int size, j; - assert( (u32)i<=usableSize-4 ); /* Enforced by btreeInitPage() */ + assert( (u32)i<=usableSize-4 ); /* Enforced by btreeComputeFreeSpace() */ size = get2byte(&data[i+2]); - assert( (u32)(i+size)<=usableSize ); /* Enforced by btreeInitPage() */ + assert( (u32)(i+size)<=usableSize ); /* due to btreeComputeFreeSpace() */ btreeHeapInsert(heap, (((u32)i)<<16)|(i+size-1)); /* EVIDENCE-OF: R-58208-19414 The first 2 bytes of a freeblock are a ** big-endian integer which is the offset in the b-tree page of the next @@ -9868,8 +9945,8 @@ static int checkTreePage( j = get2byte(&data[i]); /* EVIDENCE-OF: R-06866-39125 Freeblocks are always connected in order of ** increasing offset. */ - assert( j==0 || j>i+size ); /* Enforced by btreeInitPage() */ - assert( (u32)j<=usableSize-4 ); /* Enforced by btreeInitPage() */ + assert( j==0 || j>i+size ); /* Enforced by btreeComputeFreeSpace() */ + assert( (u32)j<=usableSize-4 ); /* Enforced by btreeComputeFreeSpace() */ i = j; } /* Analyze the min-heap looking for overlap between cells and/or diff --git a/src/btree.h b/src/btree.h index 4e03112103..ed228c22eb 100644 --- a/src/btree.h +++ b/src/btree.h @@ -301,9 +301,6 @@ struct BtreePayload { int sqlite3BtreeInsert(BtCursor*, const BtreePayload *pPayload, int flags, int seekResult); int sqlite3BtreeFirst(BtCursor*, int *pRes); -#ifndef SQLITE_OMIT_WINDOWFUNC -void sqlite3BtreeSkipNext(BtCursor*); -#endif int sqlite3BtreeLast(BtCursor*, int *pRes); int sqlite3BtreeNext(BtCursor*, int flags); int sqlite3BtreeEof(BtCursor*); diff --git a/src/btreeInt.h b/src/btreeInt.h index ea5e0815a1..ddd374efc9 100644 --- a/src/btreeInt.h +++ b/src/btreeInt.h @@ -286,7 +286,7 @@ struct MemPage { u16 maxLocal; /* Copy of BtShared.maxLocal or BtShared.maxLeaf */ u16 minLocal; /* Copy of BtShared.minLocal or BtShared.minLeaf */ u16 cellOffset; /* Index in aData of first cell pointer */ - u16 nFree; /* Number of free bytes on the page */ + int nFree; /* Number of free bytes on the page. -1 for unknown */ u16 nCell; /* Number of cells on this page, local and ovfl */ u16 maskPage; /* Mask for page offset */ u16 aiOvfl[4]; /* Insert the i-th overflow cell before the aiOvfl-th diff --git a/src/build.c b/src/build.c index 3daa677cb8..9ecd31b8e8 100644 --- a/src/build.c +++ b/src/build.c @@ -260,7 +260,12 @@ void sqlite3NestedParse(Parse *pParse, const char *zFormat, ...){ zSql = sqlite3VMPrintf(db, zFormat, ap); va_end(ap); if( zSql==0 ){ - return; /* A malloc must have failed */ + /* This can result either from an OOM or because the formatted string + ** exceeds SQLITE_LIMIT_LENGTH. In the latter case, we need to set + ** an error */ + if( !db->mallocFailed ) pParse->rc = SQLITE_TOOBIG; + pParse->nErr++; + return; } pParse->nested++; memcpy(saveBuf, PARSE_TAIL(pParse), PARSE_TAIL_SZ); @@ -1400,7 +1405,8 @@ void sqlite3AddPrimaryKey( && sortOrder!=SQLITE_SO_DESC ){ if( IN_RENAME_OBJECT && pList ){ - sqlite3RenameTokenRemap(pParse, &pTab->iPKey, pList->a[0].pExpr); + Expr *pCExpr = sqlite3ExprSkipCollate(pList->a[0].pExpr); + sqlite3RenameTokenRemap(pParse, &pTab->iPKey, pCExpr); } pTab->iPKey = iCol; pTab->keyConf = (u8)onError; @@ -1821,6 +1827,7 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ pTab->iPKey = -1; }else{ pPk = sqlite3PrimaryKeyIndex(pTab); + assert( pPk!=0 ); /* ** Remove all redundant columns from the PRIMARY KEY. For example, change @@ -1990,6 +1997,11 @@ void sqlite3EndTable( if( p->tnum==1 ) p->tabFlags |= TF_Readonly; } + assert( (p->tabFlags & TF_HasPrimaryKey)==0 + || p->iPKey>=0 || sqlite3PrimaryKeyIndex(p)!=0 ); + assert( (p->tabFlags & TF_HasPrimaryKey)!=0 + || (p->iPKey<0 && sqlite3PrimaryKeyIndex(p)==0) ); + /* Special processing for WITHOUT ROWID Tables */ if( tabOpts & TF_WithoutRowid ){ if( (p->tabFlags & TF_Autoincrement) ){ @@ -3143,13 +3155,13 @@ void sqlite3CreateIndex( assert( pParse->nErr==0 ); if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 && db->init.busy==0 + && pTblName!=0 #if SQLITE_USER_AUTHENTICATION && sqlite3UserAuthTable(pTab->zName)==0 #endif #ifdef SQLITE_ALLOW_SQLITE_MASTER_INDEX && sqlite3StrICmp(&pTab->zName[7],"master")!=0 #endif - && sqlite3StrNICmp(&pTab->zName[7],"altertab_",9)!=0 ){ sqlite3ErrorMsg(pParse, "table %s may not be indexed", pTab->zName); goto exit_create_index; @@ -3253,6 +3265,7 @@ void sqlite3CreateIndex( sqlite3ExprListSetSortOrder(pList, sortOrder); }else{ sqlite3ExprListCheckLength(pParse, pList, "index"); + if( pParse->nErr ) goto exit_create_index; } /* Figure out how many bytes of space are required to store explicitly @@ -3271,6 +3284,7 @@ void sqlite3CreateIndex( */ nName = sqlite3Strlen30(zName); nExtraCol = pPk ? pPk->nKeyCol : 1; + assert( pList->nExpr + nExtraCol <= 32767 /* Fits in i16 */ ); pIndex = sqlite3AllocateIndexObject(db, pList->nExpr + nExtraCol, nName + nExtra + 1, &zExtra); if( db->mallocFailed ){ @@ -3754,9 +3768,9 @@ void *sqlite3ArrayAllocate( int *pIdx /* Write the index of a new slot here */ ){ char *z; - int n = *pnEntry; + sqlite3_int64 n = *pIdx = *pnEntry; if( (n & (n-1))==0 ){ - int sz = (n==0) ? 1 : 2*n; + sqlite3_int64 sz = (n==0) ? 1 : 2*n; void *pNew = sqlite3DbRealloc(db, pArray, sz*szEntry); if( pNew==0 ){ *pIdx = -1; @@ -3766,7 +3780,6 @@ void *sqlite3ArrayAllocate( } z = (char*)pArray; memset(&z[n * szEntry], 0, szEntry); - *pIdx = n; ++*pnEntry; return pArray; } @@ -3877,7 +3890,7 @@ SrcList *sqlite3SrcListEnlarge( /* Allocate additional space if needed */ if( (u32)pSrc->nSrc+nExtra>pSrc->nAlloc ){ SrcList *pNew; - int nAlloc = pSrc->nSrc*2+nExtra; + sqlite3_int64 nAlloc = 2*(sqlite3_int64)pSrc->nSrc+nExtra; sqlite3 *db = pParse->db; if( pSrc->nSrc+nExtra>=SQLITE_MAX_SRCLIST ){ @@ -4384,7 +4397,8 @@ void sqlite3UniqueConstraint( StrAccum errMsg; Table *pTab = pIdx->pTable; - sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, 200); + sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, + pParse->db->aLimit[SQLITE_LIMIT_LENGTH]); if( pIdx->aColExpr ){ sqlite3_str_appendf(&errMsg, "index '%q'", pIdx->zName); }else{ @@ -4633,7 +4647,7 @@ With *sqlite3WithAdd( } if( pWith ){ - int nByte = sizeof(*pWith) + (sizeof(pWith->a[1]) * pWith->nCte); + sqlite3_int64 nByte = sizeof(*pWith) + (sizeof(pWith->a[1]) * pWith->nCte); pNew = sqlite3DbRealloc(db, pWith, nByte); }else{ pNew = sqlite3DbMallocZero(db, sizeof(*pWith)); diff --git a/src/expr.c b/src/expr.c index e39b6408c4..9a5e0345a0 100644 --- a/src/expr.c +++ b/src/expr.c @@ -857,7 +857,7 @@ Expr *sqlite3PExpr( p = sqlite3DbMallocRawNN(pParse->db, sizeof(Expr)); if( p ){ memset(p, 0, sizeof(Expr)); - p->op = op & TKFLG_MASK; + p->op = op & 0xff; p->iAgg = -1; } sqlite3ExprAttachSubtrees(pParse->db, p, pLeft, pRight); @@ -1322,7 +1322,7 @@ static Expr *exprDup(sqlite3 *db, Expr *p, int dupFlags, u8 **pzBuffer){ static With *withDup(sqlite3 *db, With *p){ With *pRet = 0; if( p ){ - int nByte = sizeof(*p) + sizeof(p->a[0]) * (p->nCte-1); + sqlite3_int64 nByte = sizeof(*p) + sizeof(p->a[0]) * (p->nCte-1); pRet = sqlite3DbMallocZero(db, nByte); if( pRet ){ int i; @@ -1587,7 +1587,7 @@ ExprList *sqlite3ExprListAppend( }else if( (pList->nExpr & (pList->nExpr-1))==0 ){ ExprList *pNew; pNew = sqlite3DbRealloc(db, pList, - sizeof(*pList)+(2*pList->nExpr - 1)*sizeof(pList->a[0])); + sizeof(*pList)+(2*(sqlite3_int64)pList->nExpr-1)*sizeof(pList->a[0])); if( pNew==0 ){ goto no_mem; } @@ -5032,6 +5032,17 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ */ int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){ Walker w; + p = sqlite3ExprSkipCollate(p); + while( p ){ + if( p->op==TK_NOTNULL ){ + p = p->pLeft; + }else if( p->op==TK_AND ){ + if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1; + p = p->pRight; + }else{ + break; + } + } w.xExprCallback = impliesNotNullRow; w.xSelectCallback = 0; w.xSelectCallback2 = 0; diff --git a/src/func.c b/src/func.c index 8b1d4416a4..03595b70d2 100644 --- a/src/func.c +++ b/src/func.c @@ -1806,6 +1806,10 @@ static void setLikeOptFlag(sqlite3 *db, const char *zName, u8 flagVal){ if( ALWAYS(pDef) ){ pDef->funcFlags |= flagVal; } + pDef = sqlite3FindFunction(db, zName, 3, SQLITE_UTF8, 0); + if( pDef ){ + pDef->funcFlags |= flagVal; + } } /* diff --git a/src/hash.c b/src/hash.c index 79bb85ac01..96f41361b8 100644 --- a/src/hash.c +++ b/src/hash.c @@ -150,7 +150,7 @@ static HashElem *findElementWithHash( unsigned int *pHash /* Write the hash value here */ ){ HashElem *elem; /* Used to loop thru the element list */ - int count; /* Number of elements left to test */ + unsigned int count; /* Number of elements left to test */ unsigned int h; /* The computed hash */ static HashElem nullElement = { 0, 0, 0, 0 }; @@ -198,8 +198,8 @@ static void removeElementGivenHash( if( pEntry->chain==elem ){ pEntry->chain = elem->next; } + assert( pEntry->count>0 ); pEntry->count--; - assert( pEntry->count>=0 ); } sqlite3_free( elem ); pH->count--; diff --git a/src/hash.h b/src/hash.h index 90540eda50..951cc06c90 100644 --- a/src/hash.h +++ b/src/hash.h @@ -45,7 +45,7 @@ struct Hash { unsigned int count; /* Number of entries in this table */ HashElem *first; /* The first element of the array */ struct _ht { /* the hash table */ - int count; /* Number of entries with this hash */ + unsigned int count; /* Number of entries with this hash */ HashElem *chain; /* Pointer to first entry with this hash */ } *ht; }; diff --git a/src/insert.c b/src/insert.c index 8d069b00ef..ee63eeda56 100644 --- a/src/insert.c +++ b/src/insert.c @@ -1669,7 +1669,9 @@ void sqlite3GenerateConstraintChecks( sqlite3VdbeAddOp3(v, OP_MakeRecord, regIdx, pIdx->nColumn, aRegIdx[ix]); VdbeComment((v, "for %s", pIdx->zName)); #ifdef SQLITE_ENABLE_NULL_TRIM - if( pIdx->idxType==2 ) sqlite3SetMakeRecordP5(v, pIdx->pTable); + if( pIdx->idxType==SQLITE_IDXTYPE_PRIMARYKEY ){ + sqlite3SetMakeRecordP5(v, pIdx->pTable); + } #endif /* In an UPDATE operation, if this index is the PRIMARY KEY index @@ -2273,6 +2275,13 @@ static int xferOptimization( if( pSrcIdx==0 ){ return 0; /* pDestIdx has no corresponding index in pSrc */ } + if( pSrcIdx->tnum==pDestIdx->tnum && pSrc->pSchema==pDest->pSchema + && sqlite3FaultSim(411)==SQLITE_OK ){ + /* The sqlite3FaultSim() call allows this corruption test to be + ** bypassed during testing, in order to exercise other corruption tests + ** further downstream. */ + return 0; /* Corrupt schema - two indexes on the same btree */ + } } #ifndef SQLITE_OMIT_CHECK if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){ @@ -2350,7 +2359,7 @@ static int xferOptimization( sqlite3RowidConstraint(pParse, onError, pDest); sqlite3VdbeJumpHere(v, addr2); autoIncStep(pParse, regAutoinc, regRowid); - }else if( pDest->pIndex==0 ){ + }else if( pDest->pIndex==0 && !(db->mDbFlags & DBFLAG_VacuumInto) ){ addr1 = sqlite3VdbeAddOp2(v, OP_NewRowid, iDest, regRowid); }else{ addr1 = sqlite3VdbeAddOp2(v, OP_Rowid, iSrc, regRowid); @@ -2413,7 +2422,7 @@ static int xferOptimization( sqlite3VdbeAddOp1(v, OP_SeekEnd, iDest); } } - if( !HasRowid(pSrc) && pDestIdx->idxType==2 ){ + if( !HasRowid(pSrc) && pDestIdx->idxType==SQLITE_IDXTYPE_PRIMARYKEY ){ idxInsFlags |= OPFLAG_NCHANGE; } sqlite3VdbeAddOp2(v, OP_IdxInsert, iDest, regData); diff --git a/src/loadext.c b/src/loadext.c index 214390edd7..9ca139c8dc 100644 --- a/src/loadext.c +++ b/src/loadext.c @@ -455,10 +455,13 @@ static const sqlite3_api_routines sqlite3Apis = { sqlite3_create_window_function, /* Version 3.26.0 and later */ #ifdef SQLITE_ENABLE_NORMALIZE - sqlite3_normalized_sql + sqlite3_normalized_sql, #else - 0 + 0, #endif + /* Version 3.28.0 and later */ + sqlite3_stmt_isexplain, + sqlite3_value_frombind }; /* diff --git a/src/main.c b/src/main.c index 41e0245477..24f7f20f39 100644 --- a/src/main.c +++ b/src/main.c @@ -705,7 +705,7 @@ static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt){ pStart = 0; }else if( pBuf==0 ){ sqlite3BeginBenignMalloc(); - pStart = sqlite3Malloc( sz*cnt ); /* IMP: R-61949-35727 */ + pStart = sqlite3Malloc( sz*(sqlite3_int64)cnt ); /* IMP: R-61949-35727 */ sqlite3EndBenignMalloc(); if( pStart ) cnt = sqlite3MallocSize(pStart)/sz; }else{ @@ -843,6 +843,8 @@ int sqlite3_db_config(sqlite3 *db, int op, ...){ { SQLITE_DBCONFIG_TRIGGER_EQP, SQLITE_TriggerEQP }, { SQLITE_DBCONFIG_RESET_DATABASE, SQLITE_ResetDatabase }, { SQLITE_DBCONFIG_DEFENSIVE, SQLITE_Defensive }, + { SQLITE_DBCONFIG_WRITABLE_SCHEMA, SQLITE_WriteSchema| + SQLITE_NoSchemaError }, }; unsigned int i; rc = SQLITE_ERROR; /* IMP: R-42790-23372 */ diff --git a/src/malloc.c b/src/malloc.c index d7f9df5efc..559e7259ce 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -661,6 +661,9 @@ void sqlite3OomFault(sqlite3 *db){ db->u1.isInterrupted = 1; } db->lookaside.bDisable++; + if( db->pParse ){ + db->pParse->rc = SQLITE_NOMEM_BKPT; + } } } diff --git a/src/pager.c b/src/pager.c index e2a12fbff7..24c7a2d569 100644 --- a/src/pager.c +++ b/src/pager.c @@ -837,6 +837,9 @@ static const unsigned char aJournalMagic[] = { int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno){ if( pPager->fd->pMethods==0 ) return 0; if( sqlite3PCacheIsDirty(pPager->pPCache) ) return 0; +#ifdef SQLITE_HAS_CODEC + if( pPager->xCodec!=0 ) return 0; +#endif #ifndef SQLITE_OMIT_WAL if( pPager->pWal ){ u32 iRead = 0; @@ -3786,8 +3789,14 @@ int sqlite3PagerSetPagesize(Pager *pPager, u32 *pPageSize, int nReserve){ rc = sqlite3OsFileSize(pPager->fd, &nByte); } if( rc==SQLITE_OK ){ - pNew = (char *)sqlite3PageMalloc(pageSize); - if( !pNew ) rc = SQLITE_NOMEM_BKPT; + /* 8 bytes of zeroed overrun space is sufficient so that the b-tree + * cell header parser will never run off the end of the allocation */ + pNew = (char *)sqlite3PageMalloc(pageSize+8); + if( !pNew ){ + rc = SQLITE_NOMEM_BKPT; + }else{ + memset(pNew+pageSize, 0, 8); + } } if( rc==SQLITE_OK ){ @@ -7168,8 +7177,12 @@ int sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno pgno, int isCommit){ */ pPg->flags &= ~PGHDR_NEED_SYNC; pPgOld = sqlite3PagerLookup(pPager, pgno); - assert( !pPgOld || pPgOld->nRef==1 ); + assert( !pPgOld || pPgOld->nRef==1 || CORRUPT_DB ); if( pPgOld ){ + if( pPgOld->nRef>1 ){ + sqlite3PagerUnrefNotNull(pPgOld); + return SQLITE_CORRUPT_BKPT; + } pPg->flags |= (pPgOld->flags&PGHDR_NEED_SYNC); if( pPager->tempFile ){ /* Do not discard pages from an in-memory database since we might @@ -7697,7 +7710,7 @@ int sqlite3PagerSnapshotCheck(Pager *pPager, sqlite3_snapshot *pSnapshot){ */ void sqlite3PagerSnapshotUnlock(Pager *pPager){ assert( pPager->pWal ); - return sqlite3WalSnapshotUnlock(pPager->pWal); + sqlite3WalSnapshotUnlock(pPager->pWal); } #endif /* SQLITE_ENABLE_SNAPSHOT */ diff --git a/src/parse.y b/src/parse.y index 1b89e69fd7..beb4eebd44 100644 --- a/src/parse.y +++ b/src/parse.y @@ -193,9 +193,7 @@ columnname(A) ::= nm(A) typetoken(Y). {sqlite3AddColumn(pParse,&A,&Y);} // improve performance and reduce the executable size. The goal here is // to get the "jump" operations in ISNULL through ESCAPE to have numeric // values that are early enough so that all jump operations are clustered -// at the beginning, but also so that the comparison tokens NE through GE -// are as large as possible so that they are near to FUNCTION, which is a -// token synthesized by addopcodes.tcl. +// at the beginning. // %token ABORT ACTION AFTER ANALYZE ASC ATTACH BEFORE BEGIN BY CASCADE CAST. %token CONFLICT DATABASE DEFERRED DESC DETACH EACH END EXCLUSIVE EXPLAIN FAIL. @@ -218,6 +216,7 @@ columnname(A) ::= nm(A) typetoken(Y). {sqlite3AddColumn(pParse,&A,&Y);} %endif SQLITE_OMIT_COMPOUND_SELECT %ifndef SQLITE_OMIT_WINDOWFUNC CURRENT FOLLOWING PARTITION PRECEDING RANGE UNBOUNDED + EXCLUDE GROUPS OTHERS TIES %endif SQLITE_OMIT_WINDOWFUNC REINDEX RENAME CTIME_KW IF . @@ -1633,13 +1632,14 @@ wqlist(A) ::= wqlist(A) COMMA nm(X) eidlist_opt(Y) AS LP select(Z) RP. { windowdefn_list(A) ::= windowdefn(Z). { A = Z; } windowdefn_list(A) ::= windowdefn_list(Y) COMMA windowdefn(Z). { assert( Z!=0 ); + sqlite3WindowChain(pParse, Z, Y); Z->pNextWin = Y; A = Z; } %type windowdefn {Window*} %destructor windowdefn {sqlite3WindowDelete(pParse->db, $$);} -windowdefn(A) ::= nm(X) AS window(Y). { +windowdefn(A) ::= nm(X) AS LP window(Y) RP. { if( ALWAYS(Y) ){ Y->zName = sqlite3DbStrNDup(pParse->db, X.z, X.n); } @@ -1667,39 +1667,56 @@ windowdefn(A) ::= nm(X) AS window(Y). { %type frame_bound_e {struct FrameBound} %destructor frame_bound_e {sqlite3ExprDelete(pParse->db, $$.pExpr);} -window(A) ::= LP part_opt(X) orderby_opt(Y) frame_opt(Z) RP. { +window(A) ::= PARTITION BY nexprlist(X) orderby_opt(Y) frame_opt(Z). { + A = sqlite3WindowAssemble(pParse, Z, X, Y, 0); +} +window(A) ::= nm(W) PARTITION BY nexprlist(X) orderby_opt(Y) frame_opt(Z). { + A = sqlite3WindowAssemble(pParse, Z, X, Y, &W); +} +window(A) ::= ORDER BY sortlist(Y) frame_opt(Z). { + A = sqlite3WindowAssemble(pParse, Z, 0, Y, 0); +} +window(A) ::= nm(W) ORDER BY sortlist(Y) frame_opt(Z). { + A = sqlite3WindowAssemble(pParse, Z, 0, Y, &W); +} +window(A) ::= frame_opt(Z). { A = Z; - if( ALWAYS(A) ){ - A->pPartition = X; - A->pOrderBy = Y; - } } - -part_opt(A) ::= PARTITION BY nexprlist(X). { A = X; } -part_opt(A) ::= . { A = 0; } +window(A) ::= nm(W) frame_opt(Z). { + A = sqlite3WindowAssemble(pParse, Z, 0, 0, &W); +} frame_opt(A) ::= . { - A = sqlite3WindowAlloc(pParse, TK_RANGE, TK_UNBOUNDED, 0, TK_CURRENT, 0); + A = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); } -frame_opt(A) ::= range_or_rows(X) frame_bound_s(Y). { - A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, TK_CURRENT, 0); +frame_opt(A) ::= range_or_rows(X) frame_bound_s(Y) frame_exclude_opt(Z). { + A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, TK_CURRENT, 0, Z); } -frame_opt(A) ::= range_or_rows(X) BETWEEN frame_bound_s(Y) AND frame_bound_e(Z). { - A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, Z.eType, Z.pExpr); +frame_opt(A) ::= range_or_rows(X) BETWEEN frame_bound_s(Y) AND + frame_bound_e(Z) frame_exclude_opt(W). { + A = sqlite3WindowAlloc(pParse, X, Y.eType, Y.pExpr, Z.eType, Z.pExpr, W); } -range_or_rows(A) ::= RANGE. { A = TK_RANGE; } -range_or_rows(A) ::= ROWS. { A = TK_ROWS; } +range_or_rows(A) ::= RANGE|ROWS|GROUPS(X). {A = @X; /*A-overwrites-X*/} + +frame_bound_s(A) ::= frame_bound(X). {A = X;} +frame_bound_s(A) ::= UNBOUNDED(X) PRECEDING. {A.eType = @X; A.pExpr = 0;} +frame_bound_e(A) ::= frame_bound(X). {A = X;} +frame_bound_e(A) ::= UNBOUNDED(X) FOLLOWING. {A.eType = @X; A.pExpr = 0;} +frame_bound(A) ::= expr(X) PRECEDING|FOLLOWING(Y). + {A.eType = @Y; A.pExpr = X;} +frame_bound(A) ::= CURRENT(X) ROW. {A.eType = @X; A.pExpr = 0;} -frame_bound_s(A) ::= frame_bound(X). { A = X; } -frame_bound_s(A) ::= UNBOUNDED PRECEDING. {A.eType = TK_UNBOUNDED; A.pExpr = 0;} -frame_bound_e(A) ::= frame_bound(X). { A = X; } -frame_bound_e(A) ::= UNBOUNDED FOLLOWING. {A.eType = TK_UNBOUNDED; A.pExpr = 0;} +%type frame_exclude_opt {u8} +frame_exclude_opt(A) ::= . {A = 0;} +frame_exclude_opt(A) ::= EXCLUDE frame_exclude(X). {A = X;} + +%type frame_exclude {u8} +frame_exclude(A) ::= NO(X) OTHERS. {A = @X; /*A-overwrites-X*/} +frame_exclude(A) ::= CURRENT(X) ROW. {A = @X; /*A-overwrites-X*/} +frame_exclude(A) ::= GROUP|TIES(X). {A = @X; /*A-overwrites-X*/} -frame_bound(A) ::= expr(X) PRECEDING. { A.eType = TK_PRECEDING; A.pExpr = X; } -frame_bound(A) ::= CURRENT ROW. { A.eType = TK_CURRENT ; A.pExpr = 0; } -frame_bound(A) ::= expr(X) FOLLOWING. { A.eType = TK_FOLLOWING; A.pExpr = X; } %type window_clause {Window*} %destructor window_clause {sqlite3WindowListDelete(pParse->db, $$);} @@ -1707,7 +1724,7 @@ window_clause(A) ::= WINDOW windowdefn_list(B). { A = B; } %type over_clause {Window*} %destructor over_clause {sqlite3WindowDelete(pParse->db, $$);} -over_clause(A) ::= filter_opt(W) OVER window(Z). { +over_clause(A) ::= filter_opt(W) OVER LP window(Z) RP. { A = Z; assert( A!=0 ); A->pFilter = W; @@ -1725,3 +1742,43 @@ over_clause(A) ::= filter_opt(W) OVER nm(Z). { filter_opt(A) ::= . { A = 0; } filter_opt(A) ::= FILTER LP WHERE expr(X) RP. { A = X; } %endif /* SQLITE_OMIT_WINDOWFUNC */ + +/* +** The code generator needs some extra TK_ token values for tokens that +** are synthesized and do not actually appear in the grammar: +*/ +%token + TRUEFALSE /* True or false keyword */ + ISNOT /* Combination of IS and NOT */ + FUNCTION /* A function invocation */ + COLUMN /* Reference to a table column */ + AGG_FUNCTION /* An aggregate function */ + AGG_COLUMN /* An aggregated column */ + UMINUS /* Unary minus */ + UPLUS /* Unary plus */ + TRUTH /* IS TRUE or IS FALSE or IS NOT TRUE or IS NOT FALSE */ + REGISTER /* Reference to a VDBE register */ + VECTOR /* Vector */ + SELECT_COLUMN /* Choose a single column from a multi-column SELECT */ + IF_NULL_ROW /* the if-null-row operator */ + ASTERISK /* The "*" in count(*) and similar */ + SPAN /* The span operator */ +. +/* There must be no more than 255 tokens defined above. If this grammar +** is extended with new rules and tokens, they must either be so few in +** number that TK_SPAN is no more than 255, or else the new tokens must +** appear after this line. +*/ +%include { +#if TK_SPAN>255 +# error too many tokens in the grammar +#endif +} + +/* +** The TK_SPACE and TK_ILLEGAL tokens must be the last two tokens. The +** parser depends on this. Those tokens are not used in any grammar rule. +** They are only used by the tokenizer. Declare them last so that they +** are guaranteed to be the last two tokens +*/ +%token SPACE ILLEGAL. diff --git a/src/pcache1.c b/src/pcache1.c index 5f502d57ba..ff01ae3113 100644 --- a/src/pcache1.c +++ b/src/pcache1.c @@ -489,9 +489,7 @@ static void pcache1FreePage(PgHdr1 *p){ ** exists, this function falls back to sqlite3Malloc(). */ void *sqlite3PageMalloc(int sz){ - /* During rebalance operations on a corrupt database file, it is sometimes - ** (rarely) possible to overread the temporary page buffer by a few bytes. - ** Enlarge the allocation slightly so that this does not cause problems. */ + assert( sz<=65536+8 ); /* These allocations are never very large */ return pcache1Alloc(sz); } diff --git a/src/printf.c b/src/printf.c index f11fb66641..0f66bc29f5 100644 --- a/src/printf.c +++ b/src/printf.c @@ -136,7 +136,8 @@ static char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){ static void setStrAccumError(StrAccum *p, u8 eError){ assert( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG ); p->accError = eError; - p->nAlloc = 0; + if( p->mxAlloc ) sqlite3_str_reset(p); + if( eError==SQLITE_TOOBIG ) sqlite3ErrorToParser(p->db, eError); } /* @@ -166,6 +167,7 @@ static char *getTextArg(PrintfArguments *p){ */ static char *printfTempBuf(sqlite3_str *pAccum, sqlite3_int64 n){ char *z; + if( pAccum->accError ) return 0; if( n>pAccum->nAlloc && n>pAccum->mxAlloc ){ setStrAccumError(pAccum, SQLITE_TOOBIG); return 0; @@ -885,9 +887,8 @@ static int sqlite3StrAccumEnlarge(StrAccum *p, int N){ return 0; } if( p->mxAlloc==0 ){ - N = p->nAlloc - p->nChar - 1; setStrAccumError(p, SQLITE_TOOBIG); - return N; + return p->nAlloc - p->nChar - 1; }else{ char *zOld = isMalloced(p) ? p->zText : 0; i64 szNew = p->nChar; @@ -959,7 +960,7 @@ void sqlite3_str_append(sqlite3_str *p, const char *z, int N){ assert( z!=0 || N==0 ); assert( p->zText!=0 || p->nChar==0 || p->accError ); assert( N>=0 ); - assert( p->accError==0 || p->nAlloc==0 ); + assert( p->accError==0 || p->nAlloc==0 || p->mxAlloc==0 ); if( p->nChar+N >= p->nAlloc ){ enlargeAndAppend(p,z,N); }else if( N ){ diff --git a/src/resolve.c b/src/resolve.c index fd9ab84f01..50755e59f3 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -435,6 +435,10 @@ static int lookupName( sqlite3ErrorMsg(pParse, "misuse of aliased aggregate %s", zAs); return WRC_Abort; } + if( (pNC->ncFlags&NC_AllowWin)==0 && ExprHasProperty(pOrig, EP_Win) ){ + sqlite3ErrorMsg(pParse, "misuse of aliased window function %s",zAs); + return WRC_Abort; + } if( sqlite3ExprVectorSize(pOrig)!=1 ){ sqlite3ErrorMsg(pParse, "row value misused"); return WRC_Abort; @@ -725,6 +729,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ const char *zId; /* The function name. */ FuncDef *pDef; /* Information about the function */ u8 enc = ENC(pParse->db); /* The database encoding */ + int savedAllowFlags = (pNC->ncFlags & (NC_AllowAgg | NC_AllowWin)); assert( !ExprHasProperty(pExpr, EP_xIsSelect) ); zId = pExpr->u.zToken; @@ -846,8 +851,11 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ pNC->nErr++; } if( is_agg ){ + /* Window functions may not be arguments of aggregate functions. + ** Or arguments of other window functions. But aggregate functions + ** may be arguments for window functions. */ #ifndef SQLITE_OMIT_WINDOWFUNC - pNC->ncFlags &= ~(pExpr->y.pWin ? NC_AllowWin : NC_AllowAgg); + pNC->ncFlags &= ~(NC_AllowWin | (!pExpr->y.pWin ? NC_AllowAgg : 0)); #else pNC->ncFlags &= ~NC_AllowAgg; #endif @@ -868,7 +876,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ pExpr->y.pWin->pNextWin = pSel->pWin; pSel->pWin = pExpr->y.pWin; } - pNC->ncFlags |= NC_AllowWin; + pNC->ncFlags |= NC_HasWin; }else #endif /* SQLITE_OMIT_WINDOWFUNC */ { @@ -886,8 +894,8 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ pNC2->ncFlags |= NC_HasAgg | (pDef->funcFlags & SQLITE_FUNC_MINMAX); } - pNC->ncFlags |= NC_AllowAgg; } + pNC->ncFlags |= savedAllowFlags; } /* FIX ME: Compute pExpr->affinity based on the expected return ** type of the function @@ -1424,7 +1432,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ */ for(i=0; ipSrc->nSrc; i++){ struct SrcList_item *pItem = &p->pSrc->a[i]; - if( pItem->pSelect ){ + if( pItem->pSelect && (pItem->pSelect->selFlags & SF_Resolved)==0 ){ NameContext *pNC; /* Used to iterate name contexts */ int nRef = 0; /* Refcount for pOuterNC and outer contexts */ const char *zSavedContext = pParse->zAuthContext; @@ -1556,6 +1564,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ } } +#ifndef SQLITE_OMIT_WINDOWFUNC if( IN_RENAME_OBJECT ){ Window *pWin; for(pWin=p->pWinDefn; pWin; pWin=pWin->pNextWin){ @@ -1566,6 +1575,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ } } } +#endif /* If this is part of a compound SELECT, check that it has the right ** number of expressions in the select list. */ @@ -1646,8 +1656,8 @@ int sqlite3ResolveExprNames( Walker w; if( pExpr==0 ) return SQLITE_OK; - savedHasAgg = pNC->ncFlags & (NC_HasAgg|NC_MinMaxAgg); - pNC->ncFlags &= ~(NC_HasAgg|NC_MinMaxAgg); + savedHasAgg = pNC->ncFlags & (NC_HasAgg|NC_MinMaxAgg|NC_HasWin); + pNC->ncFlags &= ~(NC_HasAgg|NC_MinMaxAgg|NC_HasWin); w.pParse = pNC->pParse; w.xExprCallback = resolveExprStep; w.xSelectCallback = resolveSelectStep; @@ -1663,9 +1673,11 @@ int sqlite3ResolveExprNames( #if SQLITE_MAX_EXPR_DEPTH>0 w.pParse->nHeight -= pExpr->nHeight; #endif - if( pNC->ncFlags & NC_HasAgg ){ - ExprSetProperty(pExpr, EP_Agg); - } + assert( EP_Agg==NC_HasAgg ); + assert( EP_Win==NC_HasWin ); + testcase( pNC->ncFlags & NC_HasAgg ); + testcase( pNC->ncFlags & NC_HasWin ); + ExprSetProperty(pExpr, pNC->ncFlags & (NC_HasAgg|NC_HasWin) ); pNC->ncFlags |= savedHasAgg; return pNC->nErr>0 || w.pParse->nErr>0; } diff --git a/src/select.c b/src/select.c index f30cea50de..7d8a425416 100644 --- a/src/select.c +++ b/src/select.c @@ -5306,7 +5306,7 @@ static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo){ ** ** If regAcc is non-zero and there are no min() or max() aggregates ** in pAggInfo, then only populate the pAggInfo->nAccumulator accumulator -** registers i register regAcc contains 0. The caller will take care +** registers if register regAcc contains 0. The caller will take care ** of setting and clearing regAcc. */ static void updateAccumulator(Parse *pParse, int regAcc, AggInfo *pAggInfo){ diff --git a/src/shell.c.in b/src/shell.c.in index c7d94dbee8..d8c57b481e 100644 --- a/src/shell.c.in +++ b/src/shell.c.in @@ -2747,6 +2747,66 @@ static void restore_debug_trace_modes(void){ #endif } +/* Create the TEMP table used to store parameter bindings */ +static void bind_table_init(ShellState *p){ + int wrSchema = 0; + sqlite3_db_config(p->db, SQLITE_DBCONFIG_WRITABLE_SCHEMA, -1, &wrSchema); + sqlite3_db_config(p->db, SQLITE_DBCONFIG_WRITABLE_SCHEMA, 1, 0); + sqlite3_exec(p->db, + "CREATE TABLE IF NOT EXISTS temp.sqlite_parameters(\n" + " key TEXT PRIMARY KEY,\n" + " value ANY\n" + ") WITHOUT ROWID;", + 0, 0, 0); + sqlite3_db_config(p->db, SQLITE_DBCONFIG_WRITABLE_SCHEMA, wrSchema, 0); +} + +/* +** Bind parameters on a prepared statement. +** +** Parameter bindings are taken from a TEMP table of the form: +** +** CREATE TEMP TABLE sqlite_parameters(key TEXT PRIMARY KEY, value) +** WITHOUT ROWID; +** +** No bindings occur if this table does not exist. The special character '$' +** is included in the table name to help prevent collisions with actual tables. +** The table must be in the TEMP schema. +*/ +static void bind_prepared_stmt(ShellState *pArg, sqlite3_stmt *pStmt){ + int nVar; + int i; + int rc; + sqlite3_stmt *pQ = 0; + + nVar = sqlite3_bind_parameter_count(pStmt); + if( nVar==0 ) return; /* Nothing to do */ + if( sqlite3_table_column_metadata(pArg->db, "TEMP", "sqlite_parameters", + "key", 0, 0, 0, 0, 0)!=SQLITE_OK ){ + return; /* Parameter table does not exist */ + } + rc = sqlite3_prepare_v2(pArg->db, + "SELECT value FROM temp.sqlite_parameters" + " WHERE key=?1", -1, &pQ, 0); + if( rc || pQ==0 ) return; + for(i=1; i<=nVar; i++){ + char zNum[30]; + const char *zVar = sqlite3_bind_parameter_name(pStmt, i); + if( zVar==0 ){ + sqlite3_snprintf(sizeof(zNum),zNum,"?%d",i); + zVar = zNum; + } + sqlite3_bind_text(pQ, 1, zVar, -1, SQLITE_STATIC); + if( sqlite3_step(pQ)==SQLITE_ROW ){ + sqlite3_bind_value(pStmt, i, sqlite3_column_value(pQ, 0)); + }else{ + sqlite3_bind_null(pStmt, i); + } + sqlite3_reset(pQ); + } + sqlite3_finalize(pQ); +} + /* ** Run a prepared statement */ @@ -2999,7 +3059,7 @@ static int shell_exec( } /* Show the EXPLAIN QUERY PLAN if .eqp is on */ - if( pArg && pArg->autoEQP && sqlite3_strlike("EXPLAIN%",zStmtSql,0)!=0 ){ + if( pArg && pArg->autoEQP && sqlite3_stmt_isexplain(pStmt)==0 ){ sqlite3_stmt *pExplain; char *zEQP; int triggerEQP = 0; @@ -3048,13 +3108,10 @@ static int shell_exec( if( pArg ){ pArg->cMode = pArg->mode; if( pArg->autoExplain ){ - if( sqlite3_column_count(pStmt)==8 - && sqlite3_strlike("EXPLAIN%", zStmtSql,0)==0 - ){ + if( sqlite3_stmt_isexplain(pStmt)==1 ){ pArg->cMode = MODE_Explain; } - if( sqlite3_column_count(pStmt)==4 - && sqlite3_strlike("EXPLAIN QUERY PLAN%", zStmtSql,0)==0 ){ + if( sqlite3_stmt_isexplain(pStmt)==2 ){ pArg->cMode = MODE_EQP; } } @@ -3066,6 +3123,7 @@ static int shell_exec( } } + bind_prepared_stmt(pArg, pStmt); exec_prepared_stmt(pArg, pStmt); explain_data_delete(pArg); eqp_render(pArg); @@ -3395,7 +3453,8 @@ static const char *(azHelp[]) = { ".archive ... Manage SQL archives", " Each command must have exactly one of the following options:", " -c, --create Create a new archive", - " -u, --update Update or add files to an existing archive", + " -u, --update Add files or update files with changed mtime", + " -i, --insert Like -u but always add even if mtime unchanged", " -t, --list List contents of archive", " -x, --extract Extract files from archive", " Optional arguments:", @@ -3497,6 +3556,13 @@ static const char *(azHelp[]) = { " --zip FILE is a ZIP archive", ".output ?FILE? Send output to FILE or stdout if FILE is omitted", " If FILE begins with '|' then open it as a pipe.", + ".parameter CMD ... Manage SQL parameter bindings", + " clear Erase all bindings", + " init Initialize the TEMP table that holds bindings", + " list List the current parameter bindings", + " set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE", + " PARAMETER should start with '$', ':', '@', or '?'", + " unset PARAMETER Remove PARAMETER from the binding table", ".print STRING... Print literal STRING", #ifndef SQLITE_OMIT_PROGRESS_CALLBACK ".progress N Invoke progress handler after every N opcodes", @@ -4709,7 +4775,7 @@ static int shell_dbinfo_command(ShellState *p, int nArg, char **azArg){ { "schema size:", "SELECT total(length(sql)) FROM %s" }, }; - int i; + int i, rc; unsigned iDataVersion; char *zSchemaTab; char *zDb = nArg>=2 ? azArg[1] : "main"; @@ -4717,8 +4783,19 @@ static int shell_dbinfo_command(ShellState *p, int nArg, char **azArg){ unsigned char aHdr[100]; open_db(p, 0); if( p->db==0 ) return 1; - sqlite3_prepare_v2(p->db,"SELECT data FROM sqlite_dbpage(?1) WHERE pgno=1", - -1, &pStmt, 0); + rc = sqlite3_prepare_v2(p->db, + "SELECT data FROM sqlite_dbpage(?1) WHERE pgno=1", + -1, &pStmt, 0); + if( rc ){ + if( !sqlite3_compileoption_used("ENABLE_DBPAGE_VTAB") ){ + utf8_printf(stderr, "the \".dbinfo\" command requires the " + "-DSQLITE_ENABLE_DBPAGE_VTAB compile-time options\n"); + }else{ + utf8_printf(stderr, "error: %s\n", sqlite3_errmsg(p->db)); + } + sqlite3_finalize(pStmt); + return 1; + } sqlite3_bind_text(pStmt, 1, zDb, -1, SQLITE_STATIC); if( sqlite3_step(pStmt)==SQLITE_ROW && sqlite3_column_bytes(pStmt,0)>100 @@ -5312,19 +5389,20 @@ static int arErrorMsg(ArCommand *pAr, const char *zFmt, ...){ ** Values for ArCommand.eCmd. */ #define AR_CMD_CREATE 1 -#define AR_CMD_EXTRACT 2 -#define AR_CMD_LIST 3 -#define AR_CMD_UPDATE 4 -#define AR_CMD_HELP 5 +#define AR_CMD_UPDATE 2 +#define AR_CMD_INSERT 3 +#define AR_CMD_EXTRACT 4 +#define AR_CMD_LIST 5 +#define AR_CMD_HELP 6 /* ** Other (non-command) switches. */ -#define AR_SWITCH_VERBOSE 6 -#define AR_SWITCH_FILE 7 -#define AR_SWITCH_DIRECTORY 8 -#define AR_SWITCH_APPEND 9 -#define AR_SWITCH_DRYRUN 10 +#define AR_SWITCH_VERBOSE 7 +#define AR_SWITCH_FILE 8 +#define AR_SWITCH_DIRECTORY 9 +#define AR_SWITCH_APPEND 10 +#define AR_SWITCH_DRYRUN 11 static int arProcessSwitch(ArCommand *pAr, int eSwitch, const char *zArg){ switch( eSwitch ){ @@ -5332,6 +5410,7 @@ static int arProcessSwitch(ArCommand *pAr, int eSwitch, const char *zArg){ case AR_CMD_EXTRACT: case AR_CMD_LIST: case AR_CMD_UPDATE: + case AR_CMD_INSERT: case AR_CMD_HELP: if( pAr->eCmd ){ return arErrorMsg(pAr, "multiple command options"); @@ -5378,6 +5457,7 @@ static int arParseCommand( } aSwitch[] = { { "create", 'c', AR_CMD_CREATE, 0 }, { "extract", 'x', AR_CMD_EXTRACT, 0 }, + { "insert", 'i', AR_CMD_INSERT, 0 }, { "list", 't', AR_CMD_LIST, 0 }, { "update", 'u', AR_CMD_UPDATE, 0 }, { "help", 'h', AR_CMD_HELP, 0 }, @@ -5713,7 +5793,12 @@ static int arExecSql(ArCommand *pAr, const char *zSql){ /* -** Implementation of .ar "create" and "update" commands. +** Implementation of .ar "create", "insert", and "update" commands. +** +** create -> Create a new SQL archive +** insert -> Insert or reinsert all files listed +** update -> Insert files that have changed or that were not +** previously in the archive ** ** Create the "sqlar" table in the database if it does not already exist. ** Then add each file in the azFile[] array to the archive. Directories @@ -5721,11 +5806,14 @@ static int arExecSql(ArCommand *pAr, const char *zSql){ ** printed on stdout for each file archived. ** ** The create command is the same as update, except that it drops -** any existing "sqlar" table before beginning. +** any existing "sqlar" table before beginning. The "insert" command +** always overwrites every file named on the command-line, where as +** "update" only overwrites if the size or mtime or mode has changed. */ static int arCreateOrUpdateCommand( ArCommand *pAr, /* Command arguments and options */ - int bUpdate /* true for a --create. false for --update */ + int bUpdate, /* true for a --create. */ + int bOnlyIfChanged /* Only update if file has changed */ ){ const char *zCreate = "CREATE TABLE IF NOT EXISTS sqlar(\n" @@ -5747,22 +5835,24 @@ static int arCreateOrUpdateCommand( " WHEN 'd' THEN 0\n" " ELSE -1 END,\n" " sqlar_compress(data)\n" - " FROM fsdir(%Q,%Q)\n" - " WHERE lsmode(mode) NOT LIKE '?%%';", + " FROM fsdir(%Q,%Q) AS disk\n" + " WHERE lsmode(mode) NOT LIKE '?%%'%s;" + , "REPLACE INTO %s(name,mode,mtime,data)\n" " SELECT\n" " %s,\n" " mode,\n" " mtime,\n" " data\n" - " FROM fsdir(%Q,%Q)\n" - " WHERE lsmode(mode) NOT LIKE '?%%';" + " FROM fsdir(%Q,%Q) AS disk\n" + " WHERE lsmode(mode) NOT LIKE '?%%'%s;" }; int i; /* For iterating through azFile[] */ int rc; /* Return code */ const char *zTab = 0; /* SQL table into which to insert */ char *zSql; char zTemp[50]; + char *zExists = 0; arExecSql(pAr, "PRAGMA page_size=512"); rc = arExecSql(pAr, "SAVEPOINT ar;"); @@ -5793,10 +5883,21 @@ static int arCreateOrUpdateCommand( } rc = arExecSql(pAr, zCreate); } + if( bOnlyIfChanged ){ + zExists = sqlite3_mprintf( + " AND NOT EXISTS(" + "SELECT 1 FROM %s AS mem" + " WHERE mem.name=disk.name" + " AND mem.mtime=disk.mtime" + " AND mem.mode=disk.mode)", zTab); + }else{ + zExists = sqlite3_mprintf(""); + } + if( zExists==0 ) rc = SQLITE_NOMEM; for(i=0; inArg && rc==SQLITE_OK; i++){ char *zSql2 = sqlite3_mprintf(zInsertFmt[pAr->bZip], zTab, pAr->bVerbose ? "shell_putsnl(name)" : "name", - pAr->azArg[i], pAr->zDir); + pAr->azArg[i], pAr->zDir, zExists); rc = arExecSql(pAr, zSql2); sqlite3_free(zSql2); } @@ -5811,6 +5912,7 @@ end_ar_transaction: sqlite3_free(zSql); } } + sqlite3_free(zExists); return rc; } @@ -5849,7 +5951,8 @@ static int arDotCommand( }else if( cmd.zFile ){ int flags; if( cmd.bAppend ) eDbType = SHELL_OPEN_APPENDVFS; - if( cmd.eCmd==AR_CMD_CREATE || cmd.eCmd==AR_CMD_UPDATE ){ + if( cmd.eCmd==AR_CMD_CREATE || cmd.eCmd==AR_CMD_INSERT + || cmd.eCmd==AR_CMD_UPDATE ){ flags = SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE; }else{ flags = SQLITE_OPEN_READONLY; @@ -5886,7 +5989,7 @@ static int arDotCommand( switch( cmd.eCmd ){ case AR_CMD_CREATE: - rc = arCreateOrUpdateCommand(&cmd, 0); + rc = arCreateOrUpdateCommand(&cmd, 0, 0); break; case AR_CMD_EXTRACT: @@ -5901,9 +6004,13 @@ static int arDotCommand( arUsage(pState->out); break; + case AR_CMD_INSERT: + rc = arCreateOrUpdateCommand(&cmd, 1, 0); + break; + default: assert( cmd.eCmd==AR_CMD_UPDATE ); - rc = arCreateOrUpdateCommand(&cmd, 1); + rc = arCreateOrUpdateCommand(&cmd, 1, 1); break; } } @@ -7028,6 +7135,114 @@ static int do_meta_command(char *zLine, ShellState *p){ } }else + if( c=='p' && n>=3 && strncmp(azArg[0], "parameter", n)==0 ){ + open_db(p,0); + if( nArg<=1 ) goto parameter_syntax_error; + + /* .parameter clear + ** Clear all bind parameters by dropping the TEMP table that holds them. + */ + if( nArg==2 && strcmp(azArg[1],"clear")==0 ){ + int wrSchema = 0; + sqlite3_db_config(p->db, SQLITE_DBCONFIG_WRITABLE_SCHEMA, -1, &wrSchema); + sqlite3_db_config(p->db, SQLITE_DBCONFIG_WRITABLE_SCHEMA, 1, 0); + sqlite3_exec(p->db, "DROP TABLE IF EXISTS temp.sqlite_parameters;", + 0, 0, 0); + sqlite3_db_config(p->db, SQLITE_DBCONFIG_WRITABLE_SCHEMA, wrSchema, 0); + }else + + /* .parameter list + ** List all bind parameters. + */ + if( nArg==2 && strcmp(azArg[1],"list")==0 ){ + sqlite3_stmt *pStmt = 0; + int rx; + int len = 0; + rx = sqlite3_prepare_v2(p->db, + "SELECT max(length(key)) " + "FROM temp.sqlite_parameters;", -1, &pStmt, 0); + if( rx==SQLITE_OK && sqlite3_step(pStmt)==SQLITE_ROW ){ + len = sqlite3_column_int(pStmt, 0); + if( len>40 ) len = 40; + } + sqlite3_finalize(pStmt); + pStmt = 0; + if( len ){ + rx = sqlite3_prepare_v2(p->db, + "SELECT key, quote(value) " + "FROM temp.sqlite_parameters;", -1, &pStmt, 0); + while( sqlite3_step(pStmt)==SQLITE_ROW ){ + utf8_printf(p->out, "%-*s %s\n", len, sqlite3_column_text(pStmt,0), + sqlite3_column_text(pStmt,1)); + } + sqlite3_finalize(pStmt); + } + }else + + /* .parameter init + ** Make sure the TEMP table used to hold bind parameters exists. + ** Create it if necessary. + */ + if( nArg==2 && strcmp(azArg[1],"init")==0 ){ + bind_table_init(p); + }else + + /* .parameter set NAME VALUE + ** Set or reset a bind parameter. NAME should be the full parameter + ** name exactly as it appears in the query. (ex: $abc, @def). The + ** VALUE can be in either SQL literal notation, or if not it will be + ** understood to be a text string. + */ + if( nArg==4 && strcmp(azArg[1],"set")==0 ){ + int rx; + char *zSql; + sqlite3_stmt *pStmt; + const char *zKey = azArg[2]; + const char *zValue = azArg[3]; + bind_table_init(p); + zSql = sqlite3_mprintf( + "REPLACE INTO temp.sqlite_parameters(key,value)" + "VALUES(%Q,%s);", zKey, zValue); + if( zSql==0 ) shell_out_of_memory(); + pStmt = 0; + rx = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0); + sqlite3_free(zSql); + if( rx!=SQLITE_OK ){ + sqlite3_finalize(pStmt); + pStmt = 0; + zSql = sqlite3_mprintf( + "REPLACE INTO temp.sqlite_parameters(key,value)" + "VALUES(%Q,%Q);", zKey, zValue); + if( zSql==0 ) shell_out_of_memory(); + rx = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0); + sqlite3_free(zSql); + if( rx!=SQLITE_OK ){ + utf8_printf(p->out, "Error: %s\n", sqlite3_errmsg(p->db)); + sqlite3_finalize(pStmt); + pStmt = 0; + rc = 1; + } + } + sqlite3_step(pStmt); + sqlite3_finalize(pStmt); + }else + + /* .parameter unset NAME + ** Remove the NAME binding from the parameter binding table, if it + ** exists. + */ + if( nArg==3 && strcmp(azArg[1],"unset")==0 ){ + char *zSql = sqlite3_mprintf( + "DELETE FROM temp.sqlite_parameters WHERE key=%Q", azArg[2]); + if( zSql==0 ) shell_out_of_memory(); + sqlite3_exec(p->db, zSql, 0, 0, 0); + sqlite3_free(zSql); + }else + /* If no command name matches, show a syntax error */ + parameter_syntax_error: + showHelp(p->out, "parameter"); + }else + if( c=='p' && n>=3 && strncmp(azArg[0], "print", n)==0 ){ int i; for(i=1; iSQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER -**
^This option is used to enable or disable the two-argument -** version of the [fts3_tokenizer()] function which is part of the +**
^This option is used to enable or disable the +** [fts3_tokenizer()] function which is part of the ** [FTS3] full-text search engine extension. ** There should be two additional arguments. ** The first argument is an integer which is 0 to disable fts3_tokenizer() or @@ -2199,6 +2202,17 @@ struct sqlite3_mem_methods { **
  • Direct writes to [shadow tables]. ** **
  • +** +** [[SQLITE_DBCONFIG_WRITABLE_SCHEMA]]
    SQLITE_DBCONFIG_WRITABLE_SCHEMA
    +**
    The SQLITE_DBCONFIG_WRITABLE_SCHEMA option activates or deactivates the +** "writable_schema" flag. This has the same effect and is logically equivalent +** to setting [PRAGMA writable_schema=ON] or [PRAGMA writable_schema=OFF]. +** The first argument to this setting is an integer which is 0 to disable +** the writable_schema, positive to enable writable_schema, or negative to +** leave the setting unchanged. The second parameter is a pointer to an +** integer into which is written 0 or 1 to indicate whether the writable_schema +** is enabled or disabled following this call. +**
    ** */ #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ @@ -2212,7 +2226,8 @@ struct sqlite3_mem_methods { #define SQLITE_DBCONFIG_TRIGGER_EQP 1008 /* int int* */ #define SQLITE_DBCONFIG_RESET_DATABASE 1009 /* int int* */ #define SQLITE_DBCONFIG_DEFENSIVE 1010 /* int int* */ -#define SQLITE_DBCONFIG_MAX 1010 /* Largest DBCONFIG */ +#define SQLITE_DBCONFIG_WRITABLE_SCHEMA 1011 /* int int* */ +#define SQLITE_DBCONFIG_MAX 1011 /* Largest DBCONFIG */ /* ** CAPI3REF: Enable Or Disable Extended Result Codes @@ -3894,6 +3909,18 @@ const char *sqlite3_normalized_sql(sqlite3_stmt *pStmt); */ int sqlite3_stmt_readonly(sqlite3_stmt *pStmt); +/* +** CAPI3REF: Query The EXPLAIN Setting For A Prepared Statement +** METHOD: sqlite3_stmt +** +** ^The sqlite3_stmt_isexplain(S) interface returns 1 if the +** prepared statement S is an EXPLAIN statement, or 2 if the +** statement S is an EXPLAIN QUERY PLAN. +** ^The sqlite3_stmt_isexplain(S) interface returns 0 if S is +** an ordinary statement or a NULL pointer. +*/ +int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt); + /* ** CAPI3REF: Determine If A Prepared Statement Has Been Reset ** METHOD: sqlite3_stmt @@ -4033,7 +4060,9 @@ typedef struct sqlite3_context sqlite3_context; ** ^The fifth argument to the BLOB and string binding interfaces ** is a destructor used to dispose of the BLOB or ** string after SQLite has finished with it. ^The destructor is called -** to dispose of the BLOB or string even if the call to bind API fails. +** to dispose of the BLOB or string even if the call to the bind API fails, +** except the destructor is not called if the third parameter is a NULL +** pointer or the fourth parameter is negative. ** ^If the fifth argument is ** the special value [SQLITE_STATIC], then SQLite assumes that the ** information is in static, unmanaged space and does not need to be freed. @@ -4950,6 +4979,8 @@ SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int), ** sqlite3_value_nochange   ** →  True if the column is unchanged in an UPDATE ** against a virtual table. +** sqlite3_value_frombind   +** →  True if value originated from a [bound parameter] ** ** ** Details: @@ -5011,6 +5042,11 @@ SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int), ** than within an [xUpdate] method call for an UPDATE statement, then ** the return value is arbitrary and meaningless. ** +** ^The sqlite3_value_frombind(X) interface returns non-zero if the +** value X originated from one of the [sqlite3_bind_int|sqlite3_bind()] +** interfaces. ^If X comes from an SQL literal value, or a table column, +** and expression, then sqlite3_value_frombind(X) returns zero. +** ** Please pay particular attention to the fact that the pointer returned ** from [sqlite3_value_blob()], [sqlite3_value_text()], or ** [sqlite3_value_text16()] can be invalidated by a subsequent call to @@ -5056,6 +5092,7 @@ int sqlite3_value_bytes16(sqlite3_value*); int sqlite3_value_type(sqlite3_value*); int sqlite3_value_numeric_type(sqlite3_value*); int sqlite3_value_nochange(sqlite3_value*); +int sqlite3_value_frombind(sqlite3_value*); /* ** CAPI3REF: Finding The Subtype Of SQL Values @@ -5791,7 +5828,7 @@ sqlite3 *sqlite3_db_handle(sqlite3_stmt*); ** associated with database N of connection D. ^The main database file ** has the name "main". If there is no attached database N on the database ** connection D, or if database N is a temporary or in-memory database, then -** a NULL pointer is returned. +** this function will return either a NULL pointer or an empty string. ** ** ^The filename returned by this function is the output of the ** xFullPathname method of the [VFS]. ^In other words, the filename diff --git a/src/sqlite3ext.h b/src/sqlite3ext.h index 34c41fd5a9..088148b936 100644 --- a/src/sqlite3ext.h +++ b/src/sqlite3ext.h @@ -319,6 +319,9 @@ struct sqlite3_api_routines { void(*xDestroy)(void*)); /* Version 3.26.0 and later */ const char *(*normalized_sql)(sqlite3_stmt*); + /* Version 3.28.0 and later */ + int (*stmt_isexplain)(sqlite3_stmt*); + int (*value_frombind)(sqlite3_value*); }; /* @@ -608,6 +611,9 @@ typedef int (*sqlite3_loadext_entry)( #define sqlite3_create_window_function sqlite3_api->create_window_function /* Version 3.26.0 and later */ #define sqlite3_normalized_sql sqlite3_api->normalized_sql +/* Version 3.28.0 and later */ +#define sqlite3_stmt_isexplain sqlite3_api->isexplain +#define sqlite3_value_frombind sqlite3_api->frombind #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 4940511dc4..72953e6009 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -1431,6 +1431,7 @@ struct sqlite3 { void (*xRollbackCallback)(void*); /* Invoked at every commit. */ void *pUpdateArg; void (*xUpdateCallback)(void*,int, const char*,const char*,sqlite_int64); + Parse *pParse; /* Current parse */ #ifdef SQLITE_ENABLE_PREUPDATE_HOOK void *pPreUpdateArg; /* First argument to xPreUpdateCallback */ void (*xPreUpdateCallback)( /* Registered using sqlite3_preupdate_hook() */ @@ -1564,7 +1565,8 @@ struct sqlite3 { #define DBFLAG_SchemaChange 0x0001 /* Uncommitted Hash table changes */ #define DBFLAG_PreferBuiltin 0x0002 /* Preference to built-in funcs */ #define DBFLAG_Vacuum 0x0004 /* Currently in a VACUUM */ -#define DBFLAG_SchemaKnownOk 0x0008 /* Schema is known to be valid */ +#define DBFLAG_VacuumInto 0x0008 /* Currently running VACUUM INTO */ +#define DBFLAG_SchemaKnownOk 0x0010 /* Schema is known to be valid */ /* ** Bits of the sqlite3.dbOptFlags field that are used by the @@ -1572,7 +1574,7 @@ struct sqlite3 { ** selectively disable various optimizations. */ #define SQLITE_QueryFlattener 0x0001 /* Query flattening */ - /* 0x0002 available for reuse */ +#define SQLITE_WindowFunc 0x0002 /* Use xInverse for window functions */ #define SQLITE_GroupByOrder 0x0004 /* GROUPBY cover of ORDERBY */ #define SQLITE_FactorOutConst 0x0008 /* Constant factoring */ #define SQLITE_DistinctOpt 0x0010 /* DISTINCT using indexes */ @@ -1690,7 +1692,6 @@ struct FuncDestructor { #define SQLITE_FUNC_AFFINITY 0x4000 /* Built-in affinity() function */ #define SQLITE_FUNC_OFFSET 0x8000 /* Built-in sqlite_offset() function */ #define SQLITE_FUNC_WINDOW 0x00010000 /* Built-in window-only function */ -#define SQLITE_FUNC_WINDOW_SIZE 0x20000 /* Requires partition size as arg. */ #define SQLITE_FUNC_INTERNAL 0x00040000 /* For use by NestedParse() only */ /* @@ -2496,12 +2497,16 @@ struct Expr { /* ** The following are the meanings of bits in the Expr.flags field. +** Value restrictions: +** +** EP_Agg == NC_HasAgg == SF_HasAgg +** EP_Win == NC_HasWin */ #define EP_FromJoin 0x000001 /* Originates in ON/USING clause of outer join */ -#define EP_Agg 0x000002 /* Contains one or more aggregate functions */ +#define EP_Distinct 0x000002 /* Aggregate function with DISTINCT keyword */ #define EP_HasFunc 0x000004 /* Contains one or more functions of any kind */ #define EP_FixedCol 0x000008 /* TK_Column with a known fixed value */ -#define EP_Distinct 0x000010 /* Aggregate function with DISTINCT keyword */ +#define EP_Agg 0x000010 /* Contains one or more aggregate functions */ #define EP_VarSelect 0x000020 /* pSelect is correlated, not constant */ #define EP_DblQuoted 0x000040 /* token.z was originally in "..." */ #define EP_InfixFunc 0x000080 /* True for an infix function: LIKE, GLOB, etc */ @@ -2512,7 +2517,7 @@ struct Expr { #define EP_Skip 0x001000 /* COLLATE, AS, or UNLIKELY */ #define EP_Reduced 0x002000 /* Expr struct EXPR_REDUCEDSIZE bytes only */ #define EP_TokenOnly 0x004000 /* Expr struct EXPR_TOKENONLYSIZE bytes only */ -#define EP_Static 0x008000 /* Held in memory not obtained from malloc() */ +#define EP_Win 0x008000 /* Contains window functions */ #define EP_MemToken 0x010000 /* Need to sqlite3DbFree() Expr.zToken */ #define EP_NoReduce 0x020000 /* Cannot EXPRDUP_REDUCE this Expr */ #define EP_Unlikely 0x040000 /* unlikely() or likelihood() function */ @@ -2524,6 +2529,7 @@ struct Expr { #define EP_WinFunc 0x1000000 /* TK_FUNCTION with Expr.y.pWin set */ #define EP_Subrtn 0x2000000 /* Uses Expr.y.sub. TK_IN, _SELECT, or _EXISTS */ #define EP_Quoted 0x4000000 /* TK_ID was originally quoted */ +#define EP_Static 0x8000000 /* Held in memory not obtained from malloc() */ /* ** The EP_Propagate mask is a set of properties that automatically propagate @@ -2763,8 +2769,9 @@ struct NameContext { ** Allowed values for the NameContext, ncFlags field. ** ** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg +** NC_HasAgg == SF_HasAgg == EP_Agg ** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX +** NC_HasWin == EP_Win ** */ #define NC_AllowAgg 0x0001 /* Aggregate functions are allowed here */ @@ -2780,6 +2787,7 @@ struct NameContext { #define NC_MinMaxAgg 0x1000 /* min/max aggregates seen. See note above */ #define NC_Complex 0x2000 /* True if a function or subquery seen */ #define NC_AllowWin 0x4000 /* Window functions are allowed here */ +#define NC_HasWin 0x8000 /* One or more window functions seen */ /* ** An instance of the following object describes a single ON CONFLICT @@ -3094,6 +3102,7 @@ struct Parse { AutoincInfo *pAinc; /* Information about AUTOINCREMENT counters */ Parse *pToplevel; /* Parse structure for main program (or NULL) */ Table *pTriggerTab; /* Table triggers are being coded for */ + Parse *pParentParse; /* Parent parser if this parser is nested */ int addrCrTab; /* Address of OP_CreateBtree opcode on CREATE TABLE */ u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */ u32 oldmask; /* Mask of old.* columns referenced */ @@ -3534,7 +3543,7 @@ struct TreeView { #endif /* SQLITE_DEBUG */ /* -** This object is used in varioius ways, all related to window functions +** This object is used in various ways, all related to window functions ** ** (1) A single instance of this structure is attached to the ** the Expr.pWin field for each window function in an expression tree. @@ -3549,15 +3558,18 @@ struct TreeView { ** object on a linked list attached to Select.pWinDefn. ** ** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use (3) is are separate objects. +** to be accessible in two different ways. Use case (3) are separate objects. */ struct Window { char *zName; /* Name of window (may be NULL) */ + char *zBase; /* Name of base window for chaining (may be NULL) */ ExprList *pPartition; /* PARTITION BY clause */ ExprList *pOrderBy; /* ORDER BY clause */ - u8 eType; /* TK_RANGE or TK_ROWS */ + u8 eFrmType; /* TK_RANGE, TK_GROUPS, TK_ROWS, or 0 */ u8 eStart; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */ u8 eEnd; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */ + u8 bImplicitFrame; /* True if frame was implicitly specified */ + u8 eExclude; /* TK_NO, TK_CURRENT, TK_TIES, TK_GROUP, or 0 */ Expr *pStart; /* Expression for " PRECEDING" */ Expr *pEnd; /* Expression for " FOLLOWING" */ Window *pNextWin; /* Next window function belonging to this SELECT */ @@ -3568,17 +3580,19 @@ struct Window { int regResult; int csrApp; /* Function cursor (used by min/max) */ int regApp; /* Function register (also used by min/max) */ - int regPart; /* First in a set of registers holding PARTITION BY - ** and ORDER BY values for the window */ + int regPart; /* Array of registers for PARTITION BY values */ Expr *pOwner; /* Expression object this window is attached to */ int nBufferCol; /* Number of columns in buffer table */ int iArgCol; /* Offset of first argument for this function */ + int regOne; /* Register containing constant value 1 */ + int regStartRowid; + int regEndRowid; }; #ifndef SQLITE_OMIT_WINDOWFUNC void sqlite3WindowDelete(sqlite3*, Window*); void sqlite3WindowListDelete(sqlite3 *db, Window *p); -Window *sqlite3WindowAlloc(Parse*, int, int, Expr*, int , Expr*); +Window *sqlite3WindowAlloc(Parse*, int, int, Expr*, int , Expr*, u8); void sqlite3WindowAttach(Parse*, Expr*, Window*); int sqlite3WindowCompare(Parse*, Window*, Window*); void sqlite3WindowCodeInit(Parse*, Window*); @@ -3589,6 +3603,8 @@ void sqlite3WindowUpdate(Parse*, Window*, Window*, FuncDef*); Window *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window *p); Window *sqlite3WindowListDup(sqlite3 *db, Window *p); void sqlite3WindowFunctions(void); +void sqlite3WindowChain(Parse*, Window*, Window*); +Window *sqlite3WindowAssemble(Parse*, Window*, ExprList*, ExprList*, Token*); #else # define sqlite3WindowDelete(a,b) # define sqlite3WindowFunctions() @@ -3818,6 +3834,7 @@ char *sqlite3VMPrintf(sqlite3*,const char*, va_list); void sqlite3SetString(char **, sqlite3*, const char*); void sqlite3ErrorMsg(Parse*, const char*, ...); +int sqlite3ErrorToParser(sqlite3*,int); void sqlite3Dequote(char*); void sqlite3DequoteExpr(Expr*); void sqlite3TokenInit(Token*,char*); diff --git a/src/tclsqlite.c b/src/tclsqlite.c index eb3bedf9d4..a78d5676c7 100644 --- a/src/tclsqlite.c +++ b/src/tclsqlite.c @@ -93,6 +93,14 @@ typedef struct SqliteDb SqliteDb; /* ** New SQL functions can be created as TCL scripts. Each such function ** is described by an instance of the following structure. +** +** Variable eType may be set to SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT, +** SQLITE_BLOB or SQLITE_NULL. If it is SQLITE_NULL, then the implementation +** attempts to determine the type of the result based on the Tcl object. +** If it is SQLITE_TEXT or SQLITE_BLOB, then a text (sqlite3_result_text()) +** or blob (sqlite3_result_blob()) is returned. If it is SQLITE_INTEGER +** or SQLITE_FLOAT, then an attempt is made to return an integer or float +** value, falling back to float and then text if this is not possible. */ typedef struct SqlFunc SqlFunc; struct SqlFunc { @@ -100,6 +108,7 @@ struct SqlFunc { Tcl_Obj *pScript; /* The Tcl_Obj representation of the script */ SqliteDb *pDb; /* Database connection that owns this function */ int useEvalObjv; /* True if it is safe to use Tcl_EvalObjv */ + int eType; /* Type of value to return */ char *zName; /* Name of this function */ SqlFunc *pNext; /* Next function on the list of them all */ }; @@ -150,6 +159,7 @@ struct SqliteDb { char *zTraceV2; /* The trace_v2 callback routine */ char *zProfile; /* The profile callback routine */ char *zProgress; /* The progress callback routine */ + char *zBindFallback; /* Callback to invoke on a binding miss */ char *zAuth; /* The authorization callback routine */ int disableAuth; /* Disable the authorizer if it exists */ char *zNull; /* Text to substitute for an SQL NULL value */ @@ -540,6 +550,9 @@ static void SQLITE_TCLAPI DbDeleteCmd(void *db){ if( pDb->zProfile ){ Tcl_Free(pDb->zProfile); } + if( pDb->zBindFallback ){ + Tcl_Free(pDb->zBindFallback); + } if( pDb->zAuth ){ Tcl_Free(pDb->zAuth); } @@ -995,27 +1008,54 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){ u8 *data; const char *zType = (pVar->typePtr ? pVar->typePtr->name : ""); char c = zType[0]; - if( c=='b' && strcmp(zType,"bytearray")==0 && pVar->bytes==0 ){ - /* Only return a BLOB type if the Tcl variable is a bytearray and - ** has no string representation. */ - data = Tcl_GetByteArrayFromObj(pVar, &n); - sqlite3_result_blob(context, data, n, SQLITE_TRANSIENT); - }else if( c=='b' && strcmp(zType,"boolean")==0 ){ - Tcl_GetIntFromObj(0, pVar, &n); - sqlite3_result_int(context, n); - }else if( c=='d' && strcmp(zType,"double")==0 ){ - double r; - Tcl_GetDoubleFromObj(0, pVar, &r); - sqlite3_result_double(context, r); - }else if( (c=='w' && strcmp(zType,"wideInt")==0) || - (c=='i' && strcmp(zType,"int")==0) ){ - Tcl_WideInt v; - Tcl_GetWideIntFromObj(0, pVar, &v); - sqlite3_result_int64(context, v); - }else{ - data = (unsigned char *)Tcl_GetStringFromObj(pVar, &n); - sqlite3_result_text(context, (char *)data, n, SQLITE_TRANSIENT); + int eType = p->eType; + + if( eType==SQLITE_NULL ){ + if( c=='b' && strcmp(zType,"bytearray")==0 && pVar->bytes==0 ){ + /* Only return a BLOB type if the Tcl variable is a bytearray and + ** has no string representation. */ + eType = SQLITE_BLOB; + }else if( (c=='b' && strcmp(zType,"boolean")==0) + || (c=='w' && strcmp(zType,"wideInt")==0) + || (c=='i' && strcmp(zType,"int")==0) + ){ + eType = SQLITE_INTEGER; + }else if( c=='d' && strcmp(zType,"double")==0 ){ + eType = SQLITE_FLOAT; + }else{ + eType = SQLITE_TEXT; + } } + + switch( eType ){ + case SQLITE_BLOB: { + data = Tcl_GetByteArrayFromObj(pVar, &n); + sqlite3_result_blob(context, data, n, SQLITE_TRANSIENT); + break; + } + case SQLITE_INTEGER: { + Tcl_WideInt v; + if( TCL_OK==Tcl_GetWideIntFromObj(0, pVar, &v) ){ + sqlite3_result_int64(context, v); + break; + } + /* fall-through */ + } + case SQLITE_FLOAT: { + double r; + if( TCL_OK==Tcl_GetDoubleFromObj(0, pVar, &r) ){ + sqlite3_result_double(context, r); + break; + } + /* fall-through */ + } + default: { + data = (unsigned char *)Tcl_GetStringFromObj(pVar, &n); + sqlite3_result_text(context, (char *)data, n, SQLITE_TRANSIENT); + break; + } + } + } } @@ -1265,6 +1305,8 @@ static int dbPrepareAndBind( int iParm = 0; /* Next free entry in apParm */ char c; int i; + int needResultReset = 0; /* Need to invoke Tcl_ResetResult() */ + int rc = SQLITE_OK; /* Value to return */ Tcl_Interp *interp = pDb->interp; *ppPreStmt = 0; @@ -1352,6 +1394,25 @@ static int dbPrepareAndBind( const char *zVar = sqlite3_bind_parameter_name(pStmt, i); if( zVar!=0 && (zVar[0]=='$' || zVar[0]==':' || zVar[0]=='@') ){ Tcl_Obj *pVar = Tcl_GetVar2Ex(interp, &zVar[1], 0, 0); + if( pVar==0 && pDb->zBindFallback!=0 ){ + Tcl_Obj *pCmd; + int rx; + pCmd = Tcl_NewStringObj(pDb->zBindFallback, -1); + Tcl_IncrRefCount(pCmd); + Tcl_ListObjAppendElement(interp, pCmd, Tcl_NewStringObj(zVar,-1)); + if( needResultReset ) Tcl_ResetResult(interp); + needResultReset = 1; + rx = Tcl_EvalObjEx(interp, pCmd, TCL_EVAL_DIRECT); + Tcl_DecrRefCount(pCmd); + if( rx==TCL_OK ){ + pVar = Tcl_GetObjResult(interp); + }else if( rx==TCL_ERROR ){ + rc = TCL_ERROR; + break; + }else{ + pVar = 0; + } + } if( pVar ){ int n; u8 *data; @@ -1387,12 +1448,14 @@ static int dbPrepareAndBind( }else{ sqlite3_bind_null(pStmt, i); } + if( needResultReset ) Tcl_ResetResult(pDb->interp); } } pPreStmt->nParm = iParm; *ppPreStmt = pPreStmt; + if( needResultReset && rc==TCL_OK ) Tcl_ResetResult(pDb->interp); - return TCL_OK; + return rc; } /* @@ -1851,35 +1914,36 @@ static int SQLITE_TCLAPI DbObjCmd( int choice; int rc = TCL_OK; static const char *DB_strs[] = { - "authorizer", "backup", "busy", - "cache", "changes", "close", - "collate", "collation_needed", "commit_hook", - "complete", "copy", "deserialize", - "enable_load_extension", "errorcode", "eval", - "exists", "function", "incrblob", - "interrupt", "last_insert_rowid", "nullvalue", - "onecolumn", "preupdate", "profile", - "progress", "rekey", "restore", - "rollback_hook", "serialize", "status", - "timeout", "total_changes", "trace", - "trace_v2", "transaction", "unlock_notify", - "update_hook", "version", "wal_hook", - 0 + "authorizer", "backup", "bind_fallback", + "busy", "cache", "changes", + "close", "collate", "collation_needed", + "commit_hook", "complete", "copy", + "deserialize", "enable_load_extension", "errorcode", + "eval", "exists", "function", + "incrblob", "interrupt", "last_insert_rowid", + "nullvalue", "onecolumn", "preupdate", + "profile", "progress", "rekey", + "restore", "rollback_hook", "serialize", + "status", "timeout", "total_changes", + "trace", "trace_v2", "transaction", + "unlock_notify", "update_hook", "version", + "wal_hook", 0 }; enum DB_enum { - DB_AUTHORIZER, DB_BACKUP, DB_BUSY, - DB_CACHE, DB_CHANGES, DB_CLOSE, - DB_COLLATE, DB_COLLATION_NEEDED, DB_COMMIT_HOOK, - DB_COMPLETE, DB_COPY, DB_DESERIALIZE, - DB_ENABLE_LOAD_EXTENSION, DB_ERRORCODE, DB_EVAL, - DB_EXISTS, DB_FUNCTION, DB_INCRBLOB, - DB_INTERRUPT, DB_LAST_INSERT_ROWID, DB_NULLVALUE, - DB_ONECOLUMN, DB_PREUPDATE, DB_PROFILE, - DB_PROGRESS, DB_REKEY, DB_RESTORE, - DB_ROLLBACK_HOOK, DB_SERIALIZE, DB_STATUS, - DB_TIMEOUT, DB_TOTAL_CHANGES, DB_TRACE, - DB_TRACE_V2, DB_TRANSACTION, DB_UNLOCK_NOTIFY, - DB_UPDATE_HOOK, DB_VERSION, DB_WAL_HOOK + DB_AUTHORIZER, DB_BACKUP, DB_BIND_FALLBACK, + DB_BUSY, DB_CACHE, DB_CHANGES, + DB_CLOSE, DB_COLLATE, DB_COLLATION_NEEDED, + DB_COMMIT_HOOK, DB_COMPLETE, DB_COPY, + DB_DESERIALIZE, DB_ENABLE_LOAD_EXTENSION,DB_ERRORCODE, + DB_EVAL, DB_EXISTS, DB_FUNCTION, + DB_INCRBLOB, DB_INTERRUPT, DB_LAST_INSERT_ROWID, + DB_NULLVALUE, DB_ONECOLUMN, DB_PREUPDATE, + DB_PROFILE, DB_PROGRESS, DB_REKEY, + DB_RESTORE, DB_ROLLBACK_HOOK, DB_SERIALIZE, + DB_STATUS, DB_TIMEOUT, DB_TOTAL_CHANGES, + DB_TRACE, DB_TRACE_V2, DB_TRANSACTION, + DB_UNLOCK_NOTIFY, DB_UPDATE_HOOK, DB_VERSION, + DB_WAL_HOOK }; /* don't leave trailing commas on DB_enum, it confuses the AIX xlc compiler */ @@ -2001,6 +2065,49 @@ static int SQLITE_TCLAPI DbObjCmd( break; } + /* $db bind_fallback ?CALLBACK? + ** + ** When resolving bind parameters in an SQL statement, if the parameter + ** cannot be associated with a TCL variable then invoke CALLBACK with a + ** single argument that is the name of the parameter and use the return + ** value of the CALLBACK as the binding. If CALLBACK returns something + ** other than TCL_OK or TCL_ERROR then bind a NULL. + ** + ** If CALLBACK is an empty string, then revert to the default behavior + ** which is to set the binding to NULL. + ** + ** If CALLBACK returns an error, that causes the statement execution to + ** abort. Hence, to configure a connection so that it throws an error + ** on an attempt to bind an unknown variable, do something like this: + ** + ** proc bind_error {name} {error "no such variable: $name"} + ** db bind_fallback bind_error + */ + case DB_BIND_FALLBACK: { + if( objc>3 ){ + Tcl_WrongNumArgs(interp, 2, objv, "?CALLBACK?"); + return TCL_ERROR; + }else if( objc==2 ){ + if( pDb->zBindFallback ){ + Tcl_AppendResult(interp, pDb->zBindFallback, (char*)0); + } + }else{ + char *zCallback; + int len; + if( pDb->zBindFallback ){ + Tcl_Free(pDb->zBindFallback); + } + zCallback = Tcl_GetStringFromObj(objv[2], &len); + if( zCallback && len>0 ){ + pDb->zBindFallback = Tcl_Alloc( len + 1 ); + memcpy(pDb->zBindFallback, zCallback, len+1); + }else{ + pDb->zBindFallback = 0; + } + } + break; + } + /* $db busy ?CALLBACK? ** ** Invoke the given callback if an SQL statement attempts to open @@ -2646,6 +2753,7 @@ static int SQLITE_TCLAPI DbObjCmd( char *zName; int nArg = -1; int i; + int eType = SQLITE_NULL; if( objc<4 ){ Tcl_WrongNumArgs(interp, 2, objv, "NAME ?SWITCHES? SCRIPT"); return TCL_ERROR; @@ -2653,7 +2761,7 @@ static int SQLITE_TCLAPI DbObjCmd( for(i=3; i<(objc-1); i++){ const char *z = Tcl_GetString(objv[i]); int n = strlen30(z); - if( n>2 && strncmp(z, "-argcount",n)==0 ){ + if( n>1 && strncmp(z, "-argcount",n)==0 ){ if( i==(objc-2) ){ Tcl_AppendResult(interp, "option requires an argument: ", z,(char*)0); return TCL_ERROR; @@ -2666,11 +2774,25 @@ static int SQLITE_TCLAPI DbObjCmd( } i++; }else - if( n>2 && strncmp(z, "-deterministic",n)==0 ){ + if( n>1 && strncmp(z, "-deterministic",n)==0 ){ flags |= SQLITE_DETERMINISTIC; + }else + if( n>1 && strncmp(z, "-returntype", n)==0 ){ + const char *azType[] = {"integer", "real", "text", "blob", "any", 0}; + assert( SQLITE_INTEGER==1 && SQLITE_FLOAT==2 && SQLITE_TEXT==3 ); + assert( SQLITE_BLOB==4 && SQLITE_NULL==5 ); + if( i==(objc-2) ){ + Tcl_AppendResult(interp, "option requires an argument: ", z,(char*)0); + return TCL_ERROR; + } + i++; + if( Tcl_GetIndexFromObj(interp, objv[i], azType, "type", 0, &eType) ){ + return TCL_ERROR; + } + eType++; }else{ Tcl_AppendResult(interp, "bad option \"", z, - "\": must be -argcount or -deterministic", (char*)0 + "\": must be -argcount, -deterministic or -returntype", (char*)0 ); return TCL_ERROR; } @@ -2686,6 +2808,7 @@ static int SQLITE_TCLAPI DbObjCmd( pFunc->pScript = pScript; Tcl_IncrRefCount(pScript); pFunc->useEvalObjv = safeToUseEvalObjv(interp, pScript); + pFunc->eType = eType; rc = sqlite3_create_function(pDb->db, zName, nArg, flags, pFunc, tclSqlFunc, 0, 0); if( rc!=SQLITE_OK ){ diff --git a/src/test1.c b/src/test1.c index d8a0c8642f..17819b9239 100644 --- a/src/test1.c +++ b/src/test1.c @@ -2674,6 +2674,33 @@ static int SQLITE_TCLAPI test_stmt_readonly( return TCL_OK; } +/* +** Usage: sqlite3_stmt_isexplain STMT +** +** Return 1, 2, or 0 respectively if STMT is an EXPLAIN statement, an +** EXPLAIN QUERY PLAN statement or an ordinary statement or NULL pointer. +*/ +static int SQLITE_TCLAPI test_stmt_isexplain( + void * clientData, + Tcl_Interp *interp, + int objc, + Tcl_Obj *CONST objv[] +){ + sqlite3_stmt *pStmt; + int rc; + + if( objc!=2 ){ + Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_GetStringFromObj(objv[0], 0), " STMT", 0); + return TCL_ERROR; + } + + if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR; + rc = sqlite3_stmt_isexplain(pStmt); + Tcl_SetObjResult(interp, Tcl_NewIntObj(rc)); + return TCL_OK; +} + /* ** Usage: sqlite3_stmt_busy STMT ** @@ -4245,13 +4272,15 @@ static int SQLITE_TCLAPI test_prepare_v2( } pzTail = objc>=5 ? &zTail : 0; rc = sqlite3_prepare_v2(db, zCopy, bytes, &pStmt, pzTail); + if( objc>=5 ){ + zTail = &zSql[(zTail - zCopy)]; + } free(zCopy); - zTail = &zSql[(zTail - zCopy)]; assert(rc==SQLITE_OK || pStmt==0); Tcl_ResetResult(interp); if( sqlite3TestErrCode(interp, db, rc) ) return TCL_ERROR; - if( rc==SQLITE_OK && zTail && objc>=5 ){ + if( rc==SQLITE_OK && objc>=5 && zTail ){ if( bytes>=0 ){ bytes = bytes - (int)(zTail-zSql); } @@ -7840,6 +7869,7 @@ int Sqlitetest1_Init(Tcl_Interp *interp){ #endif { "sqlite3_next_stmt", test_next_stmt ,0 }, { "sqlite3_stmt_readonly", test_stmt_readonly ,0 }, + { "sqlite3_stmt_isexplain", test_stmt_isexplain,0 }, { "sqlite3_stmt_busy", test_stmt_busy ,0 }, { "uses_stmt_journal", uses_stmt_journal ,0 }, diff --git a/src/test4.c b/src/test4.c index c5b5ec12cc..2ef5fe6928 100644 --- a/src/test4.c +++ b/src/test4.c @@ -64,7 +64,7 @@ static Thread threadset[N_THREAD]; /* ** The main loop for a thread. Threads use busy waiting. */ -static void *thread_main(void *pArg){ +static void *test_thread_main(void *pArg){ Thread *p = (Thread*)pArg; if( p->db ){ sqlite3_close(p->db); @@ -151,7 +151,7 @@ static int SQLITE_TCLAPI tcl_thread_create( threadset[i].zFilename = sqlite3_mprintf("%s", argv[2]); threadset[i].opnum = 1; threadset[i].completed = 0; - rc = pthread_create(&x, 0, thread_main, &threadset[i]); + rc = pthread_create(&x, 0, test_thread_main, &threadset[i]); if( rc ){ Tcl_AppendResult(interp, "failed to create the thread", 0); sqlite3_free(threadset[i].zFilename); @@ -165,7 +165,7 @@ static int SQLITE_TCLAPI tcl_thread_create( /* ** Wait for a thread to reach its idle state. */ -static void thread_wait(Thread *p){ +static void test_thread_wait(Thread *p){ while( p->opnum>p->completed ) sched_yield(); } @@ -193,18 +193,18 @@ static int SQLITE_TCLAPI tcl_thread_wait( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); return TCL_OK; } /* ** Stop a thread. */ -static void stop_thread(Thread *p){ - thread_wait(p); +static void test_stop_thread(Thread *p){ + test_thread_wait(p); p->xOp = 0; p->opnum++; - thread_wait(p); + test_thread_wait(p); sqlite3_free(p->zArg); p->zArg = 0; sqlite3_free(p->zFilename); @@ -233,7 +233,7 @@ static int SQLITE_TCLAPI tcl_thread_halt( } if( argv[1][0]=='*' && argv[1][1]==0 ){ for(i=0; i=threadset[i].argc ){ Tcl_AppendResult(interp, "column number out of range", 0); return TCL_ERROR; @@ -342,7 +342,7 @@ static int SQLITE_TCLAPI tcl_thread_colname( return TCL_ERROR; } if( Tcl_GetInt(interp, argv[2], &n) ) return TCL_ERROR; - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); if( n<0 || n>=threadset[i].argc ){ Tcl_AppendResult(interp, "column number out of range", 0); return TCL_ERROR; @@ -377,7 +377,7 @@ static int SQLITE_TCLAPI tcl_thread_result( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); zName = sqlite3ErrName(threadset[i].rc); Tcl_AppendResult(interp, zName, 0); return TCL_OK; @@ -408,7 +408,7 @@ static int SQLITE_TCLAPI tcl_thread_error( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); Tcl_AppendResult(interp, threadset[i].zErr, 0); return TCL_OK; } @@ -452,7 +452,7 @@ static int SQLITE_TCLAPI tcl_thread_compile( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); threadset[i].xOp = do_compile; sqlite3_free(threadset[i].zArg); threadset[i].zArg = sqlite3_mprintf("%s", argv[2]); @@ -505,7 +505,7 @@ static int SQLITE_TCLAPI tcl_thread_step( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); threadset[i].xOp = do_step; threadset[i].opnum++; return TCL_OK; @@ -547,7 +547,7 @@ static int SQLITE_TCLAPI tcl_thread_finalize( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); threadset[i].xOp = do_finalize; sqlite3_free(threadset[i].zArg); threadset[i].zArg = 0; @@ -579,14 +579,14 @@ static int SQLITE_TCLAPI tcl_thread_swap( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); j = parse_thread_id(interp, argv[2]); if( j<0 ) return TCL_ERROR; if( !threadset[j].busy ){ Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[j]); + test_thread_wait(&threadset[j]); temp = threadset[i].db; threadset[i].db = threadset[j].db; threadset[j].db = temp; @@ -620,7 +620,7 @@ static int SQLITE_TCLAPI tcl_thread_db_get( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); sqlite3TestMakePointerStr(interp, zBuf, threadset[i].db); threadset[i].db = 0; Tcl_AppendResult(interp, zBuf, (char*)0); @@ -651,7 +651,7 @@ static int SQLITE_TCLAPI tcl_thread_db_put( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); assert( !threadset[i].db ); threadset[i].db = (sqlite3*)sqlite3TestTextToPtr(argv[2]); return TCL_OK; @@ -683,7 +683,7 @@ static int SQLITE_TCLAPI tcl_thread_stmt_get( Tcl_AppendResult(interp, "no such thread", 0); return TCL_ERROR; } - thread_wait(&threadset[i]); + test_thread_wait(&threadset[i]); sqlite3TestMakePointerStr(interp, zBuf, threadset[i].pStmt); threadset[i].pStmt = 0; Tcl_AppendResult(interp, zBuf, (char*)0); diff --git a/src/test_fs.c b/src/test_fs.c index 8192beb99b..ddfdc7fb59 100644 --- a/src/test_fs.c +++ b/src/test_fs.c @@ -129,7 +129,7 @@ struct FsdirCsr { char *zDir; /* Buffer containing directory scanned */ DIR *pDir; /* Open directory */ sqlite3_int64 iRowid; - struct DIRENT entry; /* Current entry */ + struct DIRENT *pEntry; }; /* @@ -236,16 +236,8 @@ static int fsdirNext(sqlite3_vtab_cursor *cur){ FsdirCsr *pCsr = (FsdirCsr*)cur; if( pCsr->pDir ){ - struct DIRENT *pRes = 0; -#if defined(__MINGW_H) - pRes = readdir(pCsr->pDir); - if( pRes!=0 ){ - memcpy(&pCsr->entry, pRes, sizeof(struct DIRENT)); - } -#else - readdir_r(pCsr->pDir, &pCsr->entry, &pRes); -#endif - if( pRes==0 ){ + pCsr->pEntry = readdir(pCsr->pDir); + if( pCsr->pEntry==0 ){ closedir(pCsr->pDir); pCsr->pDir = 0; } @@ -308,7 +300,7 @@ static int fsdirColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){ break; case 1: /* name */ - sqlite3_result_text(ctx, pCsr->entry.d_name, -1, SQLITE_TRANSIENT); + sqlite3_result_text(ctx, pCsr->pEntry->d_name, -1, SQLITE_TRANSIENT); break; default: @@ -744,7 +736,7 @@ static int fsColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){ fstat(fd, &sbuf); if( sbuf.st_size>=pCur->nAlloc ){ - int nNew = sbuf.st_size*2; + sqlite3_int64 nNew = sbuf.st_size*2; char *zNew; if( nNew<1024 ) nNew = 1024; diff --git a/src/test_func.c b/src/test_func.c index 2a7103f88e..b7c9e08ceb 100644 --- a/src/test_func.c +++ b/src/test_func.c @@ -630,6 +630,24 @@ static void test_getsubtype( sqlite3_result_int(context, (int)sqlite3_value_subtype(argv[0])); } +/* test_frombind(A,B,C,...) +** +** Return an integer bitmask that has a bit set for every argument +** (up to the first 63 arguments) that originates from a bind a parameter. +*/ +static void test_frombind( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + sqlite3_uint64 m = 0; + int i; + for(i=0; i> 4)==4); + if( b ){ + if( (b & 0x01)==0 ){ + appendToList(pRes, i, 0, bFlag ? "less than" : "falls through"); + } + if( (b & 0x02)==0 ){ + appendToList(pRes, i, 1, bFlag ? "equal" : "taken"); + } + if( (b & 0x04)==0 ){ + appendToList(pRes, i, 2, bFlag ? "greater-than" : "NULL"); + } + } + } + Tcl_SetObjResult(interp, pRes); + Tcl_DecrRefCount(pRes); + break; + }; + + default: /* stop */ + sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE, 0, 0); + break; + } + + return TCL_OK; +} + +#endif /* SQLITE_VDBE_COVERAGE */ + +int Sqlitetestvdbecov_Init(Tcl_Interp *interp){ +#ifdef SQLITE_VDBE_COVERAGE + Tcl_CreateObjCommand(interp, "vdbe_coverage", test_vdbe_coverage, 0, 0); +#endif + return TCL_OK; +} + +#endif diff --git a/src/test_vfs.c b/src/test_vfs.c index bf9fa6b537..43e872bb3b 100644 --- a/src/test_vfs.c +++ b/src/test_vfs.c @@ -235,6 +235,7 @@ static int tvfsResultCode(Testvfs *p, int *pRc){ { SQLITE_BUSY, "SQLITE_BUSY" }, { SQLITE_READONLY, "SQLITE_READONLY" }, { SQLITE_READONLY_CANTINIT, "SQLITE_READONLY_CANTINIT" }, + { -1, "SQLITE_OMIT" }, }; const char *z; @@ -382,6 +383,7 @@ static int tvfsWrite( Tcl_NewWideIntObj(iOfst), Tcl_NewIntObj(iAmt) ); tvfsResultCode(p, &rc); + if( rc<0 ) return SQLITE_OK; } if( rc==SQLITE_OK && tvfsInjectFullerr(p) ){ diff --git a/src/tokenize.c b/src/tokenize.c index 2d7b23d4e0..40f7b4aad9 100644 --- a/src/tokenize.c +++ b/src/tokenize.c @@ -563,6 +563,7 @@ int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){ #ifdef sqlite3Parser_ENGINEALWAYSONSTACK yyParser sEngine; /* Space to hold the Lemon-generated Parser object */ #endif + VVA_ONLY( u8 startedWithOom = db->mallocFailed ); assert( zSql!=0 ); mxSqlLen = db->aLimit[SQLITE_LIMIT_SQL_LENGTH]; @@ -594,6 +595,8 @@ int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){ assert( pParse->pNewTrigger==0 ); assert( pParse->nVar==0 ); assert( pParse->pVList==0 ); + pParse->pParentParse = db->pParse; + db->pParse = pParse; while( 1 ){ n = sqlite3GetToken((u8*)zSql, &tokenType); mxSqlLen -= n; @@ -650,7 +653,8 @@ int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){ sqlite3Parser(pEngine, tokenType, pParse->sLastToken); lastTokenParsed = tokenType; zSql += n; - if( pParse->rc!=SQLITE_OK || db->mallocFailed ) break; + assert( db->mallocFailed==0 || pParse->rc!=SQLITE_OK || startedWithOom ); + if( pParse->rc!=SQLITE_OK ) break; } assert( nErr==0 ); #ifdef YYTRACKMAXSTACKDEPTH @@ -718,6 +722,8 @@ int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){ pParse->pZombieTab = p->pNextZombie; sqlite3DeleteTable(db, p); } + db->pParse = pParse->pParentParse; + pParse->pParentParse = 0; assert( nErr==0 || pParse->rc!=SQLITE_OK ); return nErr; } diff --git a/src/treeview.c b/src/treeview.c index 743c3b1298..981ae2f692 100644 --- a/src/treeview.c +++ b/src/treeview.c @@ -309,24 +309,62 @@ void sqlite3TreeViewBound( ** Generate a human-readable explanation for a Window object */ void sqlite3TreeViewWindow(TreeView *pView, const Window *pWin, u8 more){ + int nElement = 0; + if( pWin->pFilter ){ + sqlite3TreeViewItem(pView, "FILTER", 1); + sqlite3TreeViewExpr(pView, pWin->pFilter, 0); + sqlite3TreeViewPop(pView); + } pView = sqlite3TreeViewPush(pView, more); if( pWin->zName ){ - sqlite3TreeViewLine(pView, "OVER %s", pWin->zName); + sqlite3TreeViewLine(pView, "OVER %s (%p)", pWin->zName, pWin); }else{ - sqlite3TreeViewLine(pView, "OVER"); + sqlite3TreeViewLine(pView, "OVER (%p)", pWin); + } + if( pWin->zBase ) nElement++; + if( pWin->pOrderBy ) nElement++; + if( pWin->eFrmType ) nElement++; + if( pWin->eExclude ) nElement++; + if( pWin->zBase ){ + sqlite3TreeViewPush(pView, (--nElement)>0); + sqlite3TreeViewLine(pView, "window: %s", pWin->zBase); + sqlite3TreeViewPop(pView); } if( pWin->pPartition ){ - sqlite3TreeViewExprList(pView, pWin->pPartition, 1, "PARTITION-BY"); + sqlite3TreeViewExprList(pView, pWin->pPartition, nElement>0,"PARTITION-BY"); } if( pWin->pOrderBy ){ - sqlite3TreeViewExprList(pView, pWin->pOrderBy, 1, "ORDER-BY"); + sqlite3TreeViewExprList(pView, pWin->pOrderBy, (--nElement)>0, "ORDER-BY"); } - if( pWin->eType ){ - sqlite3TreeViewItem(pView, pWin->eType==TK_RANGE ? "RANGE" : "ROWS", 0); + if( pWin->eFrmType ){ + char zBuf[30]; + const char *zFrmType = "ROWS"; + if( pWin->eFrmType==TK_RANGE ) zFrmType = "RANGE"; + if( pWin->eFrmType==TK_GROUPS ) zFrmType = "GROUPS"; + sqlite3_snprintf(sizeof(zBuf),zBuf,"%s%s",zFrmType, + pWin->bImplicitFrame ? " (implied)" : ""); + sqlite3TreeViewItem(pView, zBuf, (--nElement)>0); sqlite3TreeViewBound(pView, pWin->eStart, pWin->pStart, 1); sqlite3TreeViewBound(pView, pWin->eEnd, pWin->pEnd, 0); sqlite3TreeViewPop(pView); } + if( pWin->eExclude ){ + char zBuf[30]; + const char *zExclude; + switch( pWin->eExclude ){ + case TK_NO: zExclude = "NO OTHERS"; break; + case TK_CURRENT: zExclude = "CURRENT ROW"; break; + case TK_GROUP: zExclude = "GROUP"; break; + case TK_TIES: zExclude = "TIES"; break; + default: + sqlite3_snprintf(sizeof(zBuf),zBuf,"invalid(%d)", pWin->eExclude); + zExclude = zBuf; + break; + } + sqlite3TreeViewPush(pView, 0); + sqlite3TreeViewLine(pView, "EXCLUDE %s", zExclude); + sqlite3TreeViewPop(pView); + } sqlite3TreeViewPop(pView); } #endif /* SQLITE_OMIT_WINDOWFUNC */ diff --git a/src/utf.c b/src/utf.c index 4b04c9e282..9191ed5cfd 100644 --- a/src/utf.c +++ b/src/utf.c @@ -200,11 +200,11 @@ u32 sqlite3Utf8Read( ** encoding, or if *pMem does not contain a string value. */ SQLITE_NOINLINE int sqlite3VdbeMemTranslate(Mem *pMem, u8 desiredEnc){ - int len; /* Maximum length of output string in bytes */ - unsigned char *zOut; /* Output buffer */ - unsigned char *zIn; /* Input iterator */ - unsigned char *zTerm; /* End of input */ - unsigned char *z; /* Output iterator */ + sqlite3_int64 len; /* Maximum length of output string in bytes */ + unsigned char *zOut; /* Output buffer */ + unsigned char *zIn; /* Input iterator */ + unsigned char *zTerm; /* End of input */ + unsigned char *z; /* Output iterator */ unsigned int c; assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); @@ -253,14 +253,14 @@ SQLITE_NOINLINE int sqlite3VdbeMemTranslate(Mem *pMem, u8 desiredEnc){ ** nul-terminator. */ pMem->n &= ~1; - len = pMem->n * 2 + 1; + len = 2 * (sqlite3_int64)pMem->n + 1; }else{ /* When converting from UTF-8 to UTF-16 the maximum growth is caused ** when a 1-byte UTF-8 character is translated into a 2-byte UTF-16 ** character. Two bytes are required in the output buffer for the ** nul-terminator. */ - len = pMem->n * 2 + 2; + len = 2 * (sqlite3_int64)pMem->n + 2; } /* Set zIn to point at the start of the input buffer and zTerm to point 1 diff --git a/src/util.c b/src/util.c index 8432d897f9..4fa92f83c0 100644 --- a/src/util.c +++ b/src/util.c @@ -32,15 +32,23 @@ void sqlite3Coverage(int x){ #endif /* -** Give a callback to the test harness that can be used to simulate faults -** in places where it is difficult or expensive to do so purely by means -** of inputs. +** Calls to sqlite3FaultSim() are used to simulate a failure during testing, +** or to bypass normal error detection during testing in order to let +** execute proceed futher downstream. ** -** The intent of the integer argument is to let the fault simulator know -** which of multiple sqlite3FaultSim() calls has been hit. +** In deployment, sqlite3FaultSim() *always* return SQLITE_OK (0). The +** sqlite3FaultSim() function only returns non-zero during testing. ** -** Return whatever integer value the test callback returns, or return -** SQLITE_OK if no test callback is installed. +** During testing, if the test harness has set a fault-sim callback using +** a call to sqlite3_test_control(SQLITE_TESTCTRL_FAULT_INSTALL), then +** each call to sqlite3FaultSim() is relayed to that application-supplied +** callback and the integer return value form the application-supplied +** callback is returned by sqlite3FaultSim(). +** +** The integer argument to sqlite3FaultSim() is a code to identify which +** sqlite3FaultSim() instance is being invoked. Each call to sqlite3FaultSim() +** should have a unique code. To prevent legacy testing applications from +** breaking, the codes should not be changed or reused. */ #ifndef SQLITE_UNTESTABLE int sqlite3FaultSim(int iTest){ @@ -225,6 +233,19 @@ void sqlite3ErrorMsg(Parse *pParse, const char *zFormat, ...){ } } +/* +** If database connection db is currently parsing SQL, then transfer +** error code errCode to that parser if the parser has not already +** encountered some other kind of error. +*/ +int sqlite3ErrorToParser(sqlite3 *db, int errCode){ + Parse *pParse; + if( db==0 || (pParse = db->pParse)==0 ) return errCode; + pParse->rc = errCode; + pParse->nErr++; + return errCode; +} + /* ** Convert an SQL-style quoted string into a normal string by removing ** the quote characters. The conversion is done in-place. If the @@ -1576,7 +1597,7 @@ VList *sqlite3VListAdd( assert( pIn==0 || pIn[0]>=3 ); /* Verify ok to add new elements */ if( pIn==0 || pIn[1]+nInt > pIn[0] ){ /* Enlarge the allocation */ - int nAlloc = (pIn ? pIn[0]*2 : 10) + nInt; + sqlite3_int64 nAlloc = (pIn ? 2*(sqlite3_int64)pIn[0] : 10) + nInt; VList *pOut = sqlite3DbRealloc(db, pIn, nAlloc*sizeof(int)); if( pOut==0 ) return pIn; if( pIn==0 ) pOut[1] = 2; diff --git a/src/vacuum.c b/src/vacuum.c index 8042f107b4..74e6d7df37 100644 --- a/src/vacuum.c +++ b/src/vacuum.c @@ -139,11 +139,11 @@ void sqlite3Vacuum(Parse *pParse, Token *pNm, Expr *pInto){ /* ** This routine implements the OP_Vacuum opcode of the VDBE. */ -int sqlite3RunVacuum( +SQLITE_NOINLINE int sqlite3RunVacuum( char **pzErrMsg, /* Write error message here */ sqlite3 *db, /* Database connection */ int iDb, /* Which attached DB to vacuum */ - sqlite3_value *pOut /* Write results here, if not NULL */ + sqlite3_value *pOut /* Write results here, if not NULL. VACUUM INTO */ ){ int rc = SQLITE_OK; /* Return code from service routines */ Btree *pMain; /* The database being vacuumed */ @@ -152,6 +152,7 @@ int sqlite3RunVacuum( u64 saved_flags; /* Saved value of db->flags */ int saved_nChange; /* Saved value of db->nChange */ int saved_nTotalChange; /* Saved value of db->nTotalChange */ + u32 saved_openFlags; /* Saved value of db->openFlags */ u8 saved_mTrace; /* Saved trace settings */ Db *pDb = 0; /* Database to detach at end of vacuum */ int isMemDb; /* True if vacuuming a :memory: database */ @@ -162,18 +163,21 @@ int sqlite3RunVacuum( if( !db->autoCommit ){ sqlite3SetString(pzErrMsg, db, "cannot VACUUM from within a transaction"); - return SQLITE_ERROR; + return SQLITE_ERROR; /* IMP: R-12218-18073 */ } if( db->nVdbeActive>1 ){ sqlite3SetString(pzErrMsg, db,"cannot VACUUM - SQL statements in progress"); - return SQLITE_ERROR; + return SQLITE_ERROR; /* IMP: R-15610-35227 */ } + saved_openFlags = db->openFlags; if( pOut ){ if( sqlite3_value_type(pOut)!=SQLITE_TEXT ){ sqlite3SetString(pzErrMsg, db, "non-text filename"); return SQLITE_ERROR; } zOut = (const char*)sqlite3_value_text(pOut); + db->openFlags &= ~SQLITE_OPEN_READONLY; + db->openFlags |= SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE; }else{ zOut = ""; } @@ -212,6 +216,7 @@ int sqlite3RunVacuum( */ nDb = db->nDb; rc = execSqlF(db, pzErrMsg, "ATTACH %Q AS vacuum_db", zOut); + db->openFlags = saved_openFlags; if( rc!=SQLITE_OK ) goto end_of_vacuum; assert( (db->nDb-1)==nDb ); pDb = &db->aDb[nDb]; @@ -225,6 +230,7 @@ int sqlite3RunVacuum( sqlite3SetString(pzErrMsg, db, "output file already exists"); goto end_of_vacuum; } + db->mDbFlags |= DBFLAG_VacuumInto; } nRes = sqlite3BtreeGetOptimalReserve(pMain); diff --git a/src/vdbe.c b/src/vdbe.c index 9f37624b59..c004137c47 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -122,12 +122,20 @@ int sqlite3_found_count = 0; ** feature is used for test suite validation only and does not appear an ** production builds. ** -** M is an integer between 2 and 4. 2 indicates a ordinary two-way -** branch (I=0 means fall through and I=1 means taken). 3 indicates -** a 3-way branch where the third way is when one of the operands is -** NULL. 4 indicates the OP_Jump instruction which has three destinations -** depending on whether the first operand is less than, equal to, or greater -** than the second. +** M is the type of branch. I is the direction taken for this instance of +** the branch. +** +** M: 2 - two-way branch (I=0: fall-thru 1: jump ) +** 3 - two-way + NULL (I=0: fall-thru 1: jump 2: NULL ) +** 4 - OP_Jump (I=0: jump p1 1: jump p2 2: jump p3) +** +** In other words, if M is 2, then I is either 0 (for fall-through) or +** 1 (for when the branch is taken). If M is 3, the I is 0 for an +** ordinary fall-through, I is 1 if the branch was taken, and I is 2 +** if the result of comparison is NULL. For M=3, I=2 the jump may or +** may not be taken, depending on the SQLITE_JUMPIFNULL flags in p5. +** When M is 4, that means that an OP_Jump is being run. I is 0, 1, or 2 +** depending on if the operands are less than, equal, or greater than. ** ** iSrcLine is the source code line (from the __LINE__ macro) that ** generated the VDBE instruction combined with flag bits. The source @@ -138,9 +146,9 @@ int sqlite3_found_count = 0; ** alternate branch are never taken. If a branch is never taken then ** flags should be 0x06 since only the fall-through approach is allowed. ** -** Bit 0x04 of the flags indicates an OP_Jump opcode that is only +** Bit 0x08 of the flags indicates an OP_Jump opcode that is only ** interested in equal or not-equal. In other words, I==0 and I==2 -** should be treated the same. +** should be treated as equivalent ** ** Since only a line number is retained, not the filename, this macro ** only works for amalgamation builds. But that is ok, since these macros @@ -164,6 +172,18 @@ int sqlite3_found_count = 0; mNever = iSrcLine >> 24; assert( (I & mNever)==0 ); if( sqlite3GlobalConfig.xVdbeBranch==0 ) return; /*NO_TEST*/ + /* Invoke the branch coverage callback with three arguments: + ** iSrcLine - the line number of the VdbeCoverage() macro, with + ** flags removed. + ** I - Mask of bits 0x07 indicating which cases are are + ** fulfilled by this instance of the jump. 0x01 means + ** fall-thru, 0x02 means taken, 0x04 means NULL. Any + ** impossible cases (ex: if the comparison is never NULL) + ** are filled in automatically so that the coverage + ** measurement logic does not flag those impossible cases + ** as missed coverage. + ** M - Type of jump. Same as M argument above + */ I |= mNever; if( M==2 ) I |= 0x04; if( M==4 ){ @@ -622,6 +642,15 @@ int sqlite3VdbeExec( assert( p->magic==VDBE_MAGIC_RUN ); /* sqlite3_step() verifies this */ sqlite3VdbeEnter(p); +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK + if( db->xProgress ){ + u32 iPrior = p->aCounter[SQLITE_STMTSTATUS_VM_STEP]; + assert( 0 < db->nProgressOps ); + nProgressLimit = db->nProgressOps - (iPrior % db->nProgressOps); + }else{ + nProgressLimit = 0xffffffff; + } +#endif if( p->rc==SQLITE_NOMEM ){ /* This happens if a malloc() inside a call to sqlite3_column_text() or ** sqlite3_column_text16() failed. */ @@ -635,15 +664,6 @@ int sqlite3VdbeExec( db->busyHandler.nBusy = 0; if( db->u1.isInterrupted ) goto abort_due_to_interrupt; sqlite3VdbeIOTraceSql(p); -#ifndef SQLITE_OMIT_PROGRESS_CALLBACK - if( db->xProgress ){ - u32 iPrior = p->aCounter[SQLITE_STMTSTATUS_VM_STEP]; - assert( 0 < db->nProgressOps ); - nProgressLimit = db->nProgressOps - (iPrior % db->nProgressOps); - }else{ - nProgressLimit = 0xffffffff; - } -#endif #ifdef SQLITE_DEBUG sqlite3BeginBenignMalloc(); if( p->pc==0 @@ -819,10 +839,11 @@ case OP_Goto: { /* jump */ ** If the progress callback returns non-zero, exit the virtual machine with ** a return code SQLITE_ABORT. */ - if( nVmStep>=nProgressLimit && db->xProgress!=0 ){ + while( nVmStep>=nProgressLimit && db->xProgress!=0 ){ assert( db->nProgressOps!=0 ); - nProgressLimit = nVmStep + db->nProgressOps - (nVmStep%db->nProgressOps); + nProgressLimit += db->nProgressOps; if( db->xProgress(db->pProgressArg) ){ + nProgressLimit = 0xffffffff; rc = SQLITE_INTERRUPT; goto abort_due_to_error; } @@ -1101,6 +1122,7 @@ case OP_String8: { /* same as TK_STRING, out2 */ if( encoding!=SQLITE_UTF8 ){ rc = sqlite3VdbeMemSetStr(pOut, pOp->p4.z, -1, SQLITE_UTF8, SQLITE_STATIC); assert( rc==SQLITE_OK || rc==SQLITE_TOOBIG ); + if( rc ) goto too_big; if( SQLITE_OK!=sqlite3VdbeChangeEncoding(pOut, encoding) ) goto no_mem; assert( pOut->szMalloc>0 && pOut->zMalloc==pOut->z ); assert( VdbeMemDynamic(pOut)==0 ); @@ -1113,7 +1135,6 @@ case OP_String8: { /* same as TK_STRING, out2 */ pOp->p4.z = pOut->z; pOp->p1 = pOut->n; } - testcase( rc==SQLITE_TOOBIG ); #endif if( pOp->p1>db->aLimit[SQLITE_LIMIT_LENGTH] ){ goto too_big; @@ -1235,7 +1256,10 @@ case OP_Variable: { /* out2 */ goto too_big; } pOut = &aMem[pOp->p2]; - sqlite3VdbeMemShallowCopy(pOut, pVar, MEM_Static); + if( VdbeMemDynamic(pOut) ) sqlite3VdbeMemSetNull(pOut); + memcpy(pOut, pVar, MEMCELLSIZE); + pOut->flags &= ~(MEM_Dyn|MEM_Ephem); + pOut->flags |= MEM_Static|MEM_FromBind; UPDATE_MAX_BLOBSIZE(pOut); break; } @@ -1368,18 +1392,6 @@ case OP_ResultRow: { assert( pOp->p1>0 ); assert( pOp->p1+pOp->p2<=(p->nMem+1 - p->nCursor)+1 ); -#ifndef SQLITE_OMIT_PROGRESS_CALLBACK - /* Run the progress counter just before returning. - */ - if( db->xProgress!=0 - && nVmStep>=nProgressLimit - && db->xProgress(db->pProgressArg)!=0 - ){ - rc = SQLITE_INTERRUPT; - goto abort_due_to_error; - } -#endif - /* If this statement has violated immediate foreign key constraints, do ** not return the number of rows modified. And do not RELEASE the statement ** transaction. It needs to be rolled back. */ @@ -1745,8 +1757,8 @@ case OP_MustBeInt: { /* jump, in1 */ pIn1 = &aMem[pOp->p1]; if( (pIn1->flags & MEM_Int)==0 ){ applyAffinity(pIn1, SQLITE_AFF_NUMERIC, encoding); - VdbeBranchTaken((pIn1->flags&MEM_Int)==0, 2); if( (pIn1->flags & MEM_Int)==0 ){ + VdbeBranchTaken(1, 2); if( pOp->p2==0 ){ rc = SQLITE_MISMATCH; goto abort_due_to_error; @@ -1755,6 +1767,7 @@ case OP_MustBeInt: { /* jump, in1 */ } } } + VdbeBranchTaken(0, 2); MemSetTypeFlag(pIn1, MEM_Int); break; } @@ -1929,7 +1942,6 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ ** OP_Eq or OP_Ne) then take the jump or not depending on whether ** or not both operands are null. */ - assert( pOp->opcode==OP_Eq || pOp->opcode==OP_Ne ); assert( (flags1 & MEM_Cleared)==0 ); assert( (pOp->p5 & SQLITE_JUMPIFNULL)==0 || CORRUPT_DB ); testcase( (pOp->p5 & SQLITE_JUMPIFNULL)!=0 ); @@ -1938,7 +1950,7 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ ){ res = 0; /* Operands are equal */ }else{ - res = 1; /* Operands are not equal */ + res = ((flags3 & MEM_Null) ? -1 : +1); /* Operands are not equal */ } }else{ /* SQLITE_NULLEQ is clear and at least one operand is NULL, @@ -2056,7 +2068,7 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ pOut->u.i = res2; REGISTER_TRACE(pOp->p2, pOut); }else{ - VdbeBranchTaken(res!=0, (pOp->p5 & SQLITE_NULLEQ)?2:3); + VdbeBranchTaken(res2!=0, (pOp->p5 & SQLITE_NULLEQ)?2:3); if( res2 ){ goto jump_to_p2; } @@ -2606,15 +2618,15 @@ case OP_Column: { zEndHdr = zData + aOffset[0]; testcase( zHdr>=zEndHdr ); do{ - if( (t = zHdr[0])<0x80 ){ + if( (pC->aType[i] = t = zHdr[0])<0x80 ){ zHdr++; offset64 += sqlite3VdbeOneByteSerialTypeLen(t); }else{ zHdr += sqlite3GetVarint32(zHdr, &t); + pC->aType[i] = t; offset64 += sqlite3VdbeSerialTypeLen(t); } - pC->aType[i++] = t; - aOffset[i] = (u32)(offset64 & 0xffffffff); + aOffset[++i] = (u32)(offset64 & 0xffffffff); }while( i<=p2 && zHdrpKeyInfo = pOrig->pKeyInfo; pCx->isTable = pOrig->isTable; pCx->pgnoRoot = pOrig->pgnoRoot; + pCx->isOrdered = pOrig->isOrdered; rc = sqlite3BtreeCursor(pOrig->pBtx, pCx->pgnoRoot, BTREE_WRCSR, pCx->pKeyInfo, pCx->uc.pCursor); /* The sqlite3BtreeCursor() routine can only fail for the first cursor @@ -5125,7 +5138,7 @@ case OP_Sort: { /* jump */ p->aCounter[SQLITE_STMTSTATUS_SORT]++; /* Fall through into OP_Rewind */ } -/* Opcode: Rewind P1 P2 * * P5 +/* Opcode: Rewind P1 P2 * * * ** ** The next use of the Rowid or Column or Next instruction for P1 ** will refer to the first entry in the database table or index. @@ -5133,10 +5146,6 @@ case OP_Sort: { /* jump */ ** If the table or index is not empty, fall through to the following ** instruction. ** -** If P5 is non-zero and the table is not empty, then the "skip-next" -** flag is set on the cursor so that the next OP_Next instruction -** executed on it is a no-op. -** ** This opcode leaves the cursor configured to move in forward order, ** from the beginning toward the end. In other words, the cursor is ** configured to use Next, not Prev. @@ -5147,6 +5156,7 @@ case OP_Rewind: { /* jump */ int res; assert( pOp->p1>=0 && pOp->p1nCursor ); + assert( pOp->p5==0 ); pC = p->apCsr[pOp->p1]; assert( pC!=0 ); assert( isSorter(pC)==(pOp->opcode==OP_SorterSort) ); @@ -5161,9 +5171,6 @@ case OP_Rewind: { /* jump */ pCrsr = pC->uc.pCursor; assert( pCrsr ); rc = sqlite3BtreeFirst(pCrsr, &res); -#ifndef SQLITE_OMIT_WINDOWFUNC - if( pOp->p5 ) sqlite3BtreeSkipNext(pCrsr); -#endif pC->deferredMoveto = 0; pC->cacheStatus = CACHE_STALE; } @@ -6173,8 +6180,7 @@ case OP_Program: { /* jump */ } #endif pOp = &aOp[-1]; - - break; + goto check_for_interrupt; } /* Opcode: Param P1 P2 * * * @@ -6546,6 +6552,7 @@ case OP_AggFinal: { assert( (pMem->flags & ~(MEM_Null|MEM_Agg))==0 ); #ifndef SQLITE_OMIT_WINDOWFUNC if( pOp->p3 ){ + memAboutToChange(p, &aMem[pOp->p3]); rc = sqlite3VdbeMemAggValue(pMem, &aMem[pOp->p3], pOp->p4.pFunc); pMem = &aMem[pOp->p3]; }else @@ -7583,7 +7590,16 @@ default: { /* This is really OP_Noop, OP_Explain */ ** release the mutexes on btrees that were acquired at the ** top. */ vdbe_return: - testcase( nVmStep>0 ); +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK + while( nVmStep>=nProgressLimit && db->xProgress!=0 ){ + nProgressLimit += db->nProgressOps; + if( db->xProgress(db->pProgressArg) ){ + nProgressLimit = 0xffffffff; + rc = SQLITE_INTERRUPT; + goto abort_due_to_error; + } + } +#endif p->aCounter[SQLITE_STMTSTATUS_VM_STEP] += (int)nVmStep; sqlite3VdbeLeave(p); assert( rc!=SQLITE_OK || nExtraDelete==0 diff --git a/src/vdbeInt.h b/src/vdbeInt.h index acc7f5a6a0..15a371d550 100644 --- a/src/vdbeInt.h +++ b/src/vdbeInt.h @@ -246,11 +246,11 @@ struct sqlite3_value { #define MEM_Real 0x0008 /* Value is a real number */ #define MEM_Blob 0x0010 /* Value is a BLOB */ #define MEM_AffMask 0x001f /* Mask of affinity bits */ -/* Available 0x0020 */ +#define MEM_FromBind 0x0020 /* Value originates from sqlite3_bind() */ /* Available 0x0040 */ #define MEM_Undefined 0x0080 /* Value is undefined */ #define MEM_Cleared 0x0100 /* NULL set by OP_Null, not from data */ -#define MEM_TypeMask 0xc1ff /* Mask of type bits */ +#define MEM_TypeMask 0xc1df /* Mask of type bits */ /* Whenever Mem contains a valid string or blob representation, one of @@ -282,6 +282,12 @@ struct sqlite3_value { #define MemSetTypeFlag(p, f) \ ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f) +/* +** True if Mem X is a NULL-nochng type. +*/ +#define MemNullNochng(X) \ + ((X)->flags==(MEM_Null|MEM_Zero) && (X)->n==0 && (X)->u.nZero==0) + /* ** Return true if a memory cell is not marked as invalid. This macro ** is for use inside assert() statements only. diff --git a/src/vdbeapi.c b/src/vdbeapi.c index 23b19273b6..00eea75a45 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -67,7 +67,7 @@ static SQLITE_NOINLINE void invokeProfileCallback(sqlite3 *db, Vdbe *p){ assert( p->zSql!=0 ); sqlite3OsCurrentTimeInt64(db->pVfs, &iNow); iElapse = (iNow - p->startTime)*1000000; -#ifndef SQLITE_OMIT_DEPRECATED +#ifndef SQLITE_OMIT_DEPRECATED if( db->xProfile ){ db->xProfile(db->pProfileArg, p->zSql, iElapse); } @@ -275,6 +275,11 @@ int sqlite3_value_nochange(sqlite3_value *pVal){ return (pVal->flags&(MEM_Null|MEM_Zero))==(MEM_Null|MEM_Zero); } +/* Return true if a parameter value originated from an sqlite3_bind() */ +int sqlite3_value_frombind(sqlite3_value *pVal){ + return (pVal->flags&MEM_FromBind)!=0; +} + /* Make a copy of an sqlite3_value object */ sqlite3_value *sqlite3_value_dup(const sqlite3_value *pOrig){ @@ -1120,10 +1125,10 @@ int sqlite3_column_type(sqlite3_stmt *pStmt, int i){ ** or a constant) then useTypes 2, 3, and 4 return NULL. */ static const void *columnName( - sqlite3_stmt *pStmt, - int N, - const void *(*xFunc)(Mem*), - int useType + sqlite3_stmt *pStmt, /* The statement */ + int N, /* Which column to get the name for */ + int useUtf16, /* True to return the name as UTF16 */ + int useType /* What type of name */ ){ const void *ret; Vdbe *p; @@ -1144,8 +1149,15 @@ static const void *columnName( N += useType*n; sqlite3_mutex_enter(db->mutex); assert( db->mallocFailed==0 ); - ret = xFunc(&p->aColName[N]); - /* A malloc may have failed inside of the xFunc() call. If this +#ifndef SQLITE_OMIT_UTF16 + if( useUtf16 ){ + ret = sqlite3_value_text16((sqlite3_value*)&p->aColName[N]); + }else +#endif + { + ret = sqlite3_value_text((sqlite3_value*)&p->aColName[N]); + } + /* A malloc may have failed inside of the _text() call. If this ** is the case, clear the mallocFailed flag and return NULL. */ if( db->mallocFailed ){ @@ -1162,13 +1174,11 @@ static const void *columnName( ** statement pStmt. */ const char *sqlite3_column_name(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_NAME); + return columnName(pStmt, N, 0, COLNAME_NAME); } #ifndef SQLITE_OMIT_UTF16 const void *sqlite3_column_name16(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_NAME); + return columnName(pStmt, N, 1, COLNAME_NAME); } #endif @@ -1187,13 +1197,11 @@ const void *sqlite3_column_name16(sqlite3_stmt *pStmt, int N){ ** of the result set of SQL statement pStmt. */ const char *sqlite3_column_decltype(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_DECLTYPE); + return columnName(pStmt, N, 0, COLNAME_DECLTYPE); } #ifndef SQLITE_OMIT_UTF16 const void *sqlite3_column_decltype16(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_DECLTYPE); + return columnName(pStmt, N, 1, COLNAME_DECLTYPE); } #endif /* SQLITE_OMIT_UTF16 */ #endif /* SQLITE_OMIT_DECLTYPE */ @@ -1205,13 +1213,11 @@ const void *sqlite3_column_decltype16(sqlite3_stmt *pStmt, int N){ ** anything else which is not an unambiguous reference to a database column. */ const char *sqlite3_column_database_name(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_DATABASE); + return columnName(pStmt, N, 0, COLNAME_DATABASE); } #ifndef SQLITE_OMIT_UTF16 const void *sqlite3_column_database_name16(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_DATABASE); + return columnName(pStmt, N, 1, COLNAME_DATABASE); } #endif /* SQLITE_OMIT_UTF16 */ @@ -1221,13 +1227,11 @@ const void *sqlite3_column_database_name16(sqlite3_stmt *pStmt, int N){ ** anything else which is not an unambiguous reference to a database column. */ const char *sqlite3_column_table_name(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_TABLE); + return columnName(pStmt, N, 0, COLNAME_TABLE); } #ifndef SQLITE_OMIT_UTF16 const void *sqlite3_column_table_name16(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_TABLE); + return columnName(pStmt, N, 1, COLNAME_TABLE); } #endif /* SQLITE_OMIT_UTF16 */ @@ -1237,13 +1241,11 @@ const void *sqlite3_column_table_name16(sqlite3_stmt *pStmt, int N){ ** anything else which is not an unambiguous reference to a database column. */ const char *sqlite3_column_origin_name(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_COLUMN); + return columnName(pStmt, N, 0, COLNAME_COLUMN); } #ifndef SQLITE_OMIT_UTF16 const void *sqlite3_column_origin_name16(sqlite3_stmt *pStmt, int N){ - return columnName( - pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_COLUMN); + return columnName(pStmt, N, 1, COLNAME_COLUMN); } #endif /* SQLITE_OMIT_UTF16 */ #endif /* SQLITE_ENABLE_COLUMN_METADATA */ @@ -1611,6 +1613,14 @@ int sqlite3_stmt_readonly(sqlite3_stmt *pStmt){ return pStmt ? ((Vdbe*)pStmt)->readOnly : 1; } +/* +** Return 1 if the statement is an EXPLAIN and return 2 if the +** statement is an EXPLAIN QUERY PLAN +*/ +int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt){ + return pStmt ? ((Vdbe*)pStmt)->explain : 0; +} + /* ** Return true if the prepared statement is in need of being reset. */ diff --git a/src/vdbeaux.c b/src/vdbeaux.c index aba75500f5..822c6fe60c 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -155,9 +155,11 @@ static int growOpArray(Vdbe *v, int nOp){ ** operation (without SQLITE_TEST_REALLOC_STRESS) is to double the current ** size of the op array or add 1KB of space, whichever is smaller. */ #ifdef SQLITE_TEST_REALLOC_STRESS - int nNew = (v->nOpAlloc>=512 ? v->nOpAlloc*2 : v->nOpAlloc+nOp); + sqlite3_int64 nNew = (v->nOpAlloc>=512 ? 2*(sqlite3_int64)v->nOpAlloc + : (sqlite3_int64)v->nOpAlloc+nOp); #else - int nNew = (v->nOpAlloc ? v->nOpAlloc*2 : (int)(1024/sizeof(Op))); + sqlite3_int64 nNew = (v->nOpAlloc ? 2*(sqlite3_int64)v->nOpAlloc + : (sqlite3_int64)(1024/sizeof(Op))); UNUSED_PARAMETER(nOp); #endif @@ -637,6 +639,7 @@ int sqlite3VdbeAssertMayAbort(Vdbe *v, int mayAbort){ int opcode = pOp->opcode; if( opcode==OP_Destroy || opcode==OP_VUpdate || opcode==OP_VRename || opcode==OP_VDestroy + || (opcode==OP_Function0 && pOp->p4.pFunc->funcFlags&SQLITE_FUNC_INTERNAL) || ((opcode==OP_Halt || opcode==OP_HaltIfNull) && ((pOp->p1)!=SQLITE_OK && pOp->p2==OE_Abort)) ){ @@ -944,7 +947,7 @@ void sqlite3VdbeScanStatus( LogEst nEst, /* Estimated number of output rows */ const char *zName /* Name of table or index being scanned */ ){ - int nByte = (p->nScan+1) * sizeof(ScanStatus); + sqlite3_int64 nByte = (p->nScan+1) * sizeof(ScanStatus); ScanStatus *aNew; aNew = (ScanStatus*)sqlite3DbRealloc(p->db, p->aScan, nByte); if( aNew ){ @@ -2065,9 +2068,9 @@ void sqlite3VdbeIOTraceSql(Vdbe *p){ ** of a ReusableSpace object by the allocSpace() routine below. */ struct ReusableSpace { - u8 *pSpace; /* Available memory */ - int nFree; /* Bytes of available memory */ - int nNeeded; /* Total bytes that could not be allocated */ + u8 *pSpace; /* Available memory */ + sqlite3_int64 nFree; /* Bytes of available memory */ + sqlite3_int64 nNeeded; /* Total bytes that could not be allocated */ }; /* Try to allocate nByte bytes of 8-byte aligned bulk memory for pBuf @@ -2087,7 +2090,7 @@ struct ReusableSpace { static void *allocSpace( struct ReusableSpace *p, /* Bulk memory available for allocation */ void *pBuf, /* Pointer to a prior allocation */ - int nByte /* Bytes of memory needed */ + sqlite3_int64 nByte /* Bytes of memory needed */ ){ assert( EIGHT_BYTE_ALIGNMENT(p->pSpace) ); if( pBuf==0 ){ diff --git a/src/vdbemem.c b/src/vdbemem.c index 5aa0ec6ca5..10c23adfd3 100644 --- a/src/vdbemem.c +++ b/src/vdbemem.c @@ -57,7 +57,7 @@ int sqlite3VdbeCheckMemInvariants(Mem *p){ ((p->flags&MEM_Static)!=0 ? 1 : 0) <= 1 ); /* No other bits set */ - assert( (p->flags & ~(MEM_Null|MEM_Term|MEM_Subtype + assert( (p->flags & ~(MEM_Null|MEM_Term|MEM_Subtype|MEM_FromBind |MEM_Dyn|MEM_Ephem|MEM_Static))==0 ); }else{ /* A pure NULL might have other flags, such as MEM_Static, MEM_Dyn, @@ -178,8 +178,7 @@ int sqlite3VdbeChangeEncoding(Mem *pMem, int desiredEnc){ } /* -** Make sure pMem->z points to a writable allocation of at least -** min(n,32) bytes. +** Make sure pMem->z points to a writable allocation of at least n bytes. ** ** If the bPreserve argument is true, then copy of the content of ** pMem->z into the new allocation. pMem must be either a string or @@ -198,7 +197,6 @@ SQLITE_NOINLINE int sqlite3VdbeMemGrow(Mem *pMem, int n, int bPreserve){ assert( pMem->szMalloc==0 || pMem->szMalloc==sqlite3DbMallocSize(pMem->db, pMem->zMalloc) ); - if( n<32 ) n = 32; if( pMem->szMalloc>0 && bPreserve && pMem->z==pMem->zMalloc ){ pMem->z = pMem->zMalloc = sqlite3DbReallocOrFree(pMem->db, pMem->z, n); bPreserve = 0; @@ -300,13 +298,15 @@ int sqlite3VdbeMemMakeWriteable(Mem *pMem){ int sqlite3VdbeMemExpandBlob(Mem *pMem){ int nByte; assert( pMem->flags & MEM_Zero ); - assert( pMem->flags&MEM_Blob ); + assert( (pMem->flags&MEM_Blob)!=0 || MemNullNochng(pMem) ); + testcase( sqlite3_value_nochange(pMem) ); assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); /* Set nByte to the number of bytes required to store the expanded blob. */ nByte = pMem->n + pMem->u.nZero; if( nByte<=0 ){ + if( (pMem->flags & MEM_Blob)==0 ) return SQLITE_OK; nByte = 1; } if( sqlite3VdbeMemGrow(pMem, nByte, 1) ){ @@ -1047,7 +1047,6 @@ int sqlite3VdbeMemSetStr( assert( enc!=0 ); if( enc==SQLITE_UTF8 ){ nByte = 0x7fffffff & (int)strlen(z); - if( nByte>iLimit ) nByte = iLimit+1; }else{ for(nByte=0; nByte<=iLimit && (z[nByte] | z[nByte+1]); nByte+=2){} } @@ -1059,29 +1058,30 @@ int sqlite3VdbeMemSetStr( ** management (one of MEM_Dyn or MEM_Static). */ if( xDel==SQLITE_TRANSIENT ){ - int nAlloc = nByte; + u32 nAlloc = nByte; if( flags&MEM_Term ){ nAlloc += (enc==SQLITE_UTF8?1:2); } if( nByte>iLimit ){ - return SQLITE_TOOBIG; + return sqlite3ErrorToParser(pMem->db, SQLITE_TOOBIG); } testcase( nAlloc==0 ); testcase( nAlloc==31 ); testcase( nAlloc==32 ); - if( sqlite3VdbeMemClearAndResize(pMem, MAX(nAlloc,32)) ){ + if( sqlite3VdbeMemClearAndResize(pMem, (int)MAX(nAlloc,32)) ){ return SQLITE_NOMEM_BKPT; } memcpy(pMem->z, z, nAlloc); - }else if( xDel==SQLITE_DYNAMIC ){ - sqlite3VdbeMemRelease(pMem); - pMem->zMalloc = pMem->z = (char *)z; - pMem->szMalloc = sqlite3DbMallocSize(pMem->db, pMem->zMalloc); }else{ sqlite3VdbeMemRelease(pMem); pMem->z = (char *)z; - pMem->xDel = xDel; - flags |= ((xDel==SQLITE_STATIC)?MEM_Static:MEM_Dyn); + if( xDel==SQLITE_DYNAMIC ){ + pMem->zMalloc = pMem->z; + pMem->szMalloc = sqlite3DbMallocSize(pMem->db, pMem->zMalloc); + }else{ + pMem->xDel = xDel; + flags |= ((xDel==SQLITE_STATIC)?MEM_Static:MEM_Dyn); + } } pMem->n = nByte; diff --git a/src/vdbesort.c b/src/vdbesort.c index b30bc4e082..f909f812d6 100644 --- a/src/vdbesort.c +++ b/src/vdbesort.c @@ -537,7 +537,7 @@ static int vdbePmaReadBlob( /* Extend the p->aAlloc[] allocation if required. */ if( p->nAllocnAlloc*2); + sqlite3_int64 nNew = MAX(128, 2*(sqlite3_int64)p->nAlloc); while( nByte>nNew ) nNew = nNew*2; aNew = sqlite3Realloc(p->aAlloc, nNew); if( !aNew ) return SQLITE_NOMEM_BKPT; @@ -1828,15 +1828,19 @@ int sqlite3VdbeSorterWrite( if( nMin>pSorter->nMemory ){ u8 *aNew; - int iListOff = (u8*)pSorter->list.pList - pSorter->list.aMemory; - int nNew = pSorter->nMemory * 2; + sqlite3_int64 nNew = 2 * (sqlite3_int64)pSorter->nMemory; + int iListOff = -1; + if( pSorter->list.pList ){ + iListOff = (u8*)pSorter->list.pList - pSorter->list.aMemory; + } while( nNew < nMin ) nNew = nNew*2; if( nNew > pSorter->mxPmaSize ) nNew = pSorter->mxPmaSize; if( nNew < nMin ) nNew = nMin; - aNew = sqlite3Realloc(pSorter->list.aMemory, nNew); if( !aNew ) return SQLITE_NOMEM_BKPT; - pSorter->list.pList = (SorterRecord*)&aNew[iListOff]; + if( iListOff>=0 ){ + pSorter->list.pList = (SorterRecord*)&aNew[iListOff]; + } pSorter->list.aMemory = aNew; pSorter->nMemory = nNew; } diff --git a/src/vtab.c b/src/vtab.c index 8814b5f4c1..7806eb946f 100644 --- a/src/vtab.c +++ b/src/vtab.c @@ -302,9 +302,13 @@ void sqlite3VtabClear(sqlite3 *db, Table *p){ ** string will be freed automatically when the table is ** deleted. */ -static void addModuleArgument(sqlite3 *db, Table *pTable, char *zArg){ - int nBytes = sizeof(char *)*(2+pTable->nModuleArg); +static void addModuleArgument(Parse *pParse, Table *pTable, char *zArg){ + sqlite3_int64 nBytes = sizeof(char *)*(2+pTable->nModuleArg); char **azModuleArg; + sqlite3 *db = pParse->db; + if( pTable->nModuleArg+3>=db->aLimit[SQLITE_LIMIT_COLUMN] ){ + sqlite3ErrorMsg(pParse, "too many columns on %s", pTable->zName); + } azModuleArg = sqlite3DbRealloc(db, pTable->azModuleArg, nBytes); if( azModuleArg==0 ){ sqlite3DbFree(db, zArg); @@ -339,9 +343,9 @@ void sqlite3VtabBeginParse( db = pParse->db; assert( pTable->nModuleArg==0 ); - addModuleArgument(db, pTable, sqlite3NameFromToken(db, pModuleName)); - addModuleArgument(db, pTable, 0); - addModuleArgument(db, pTable, sqlite3DbStrDup(db, pTable->zName)); + addModuleArgument(pParse, pTable, sqlite3NameFromToken(db, pModuleName)); + addModuleArgument(pParse, pTable, 0); + addModuleArgument(pParse, pTable, sqlite3DbStrDup(db, pTable->zName)); assert( (pParse->sNameToken.z==pName2->z && pName2->z!=0) || (pParse->sNameToken.z==pName1->z && pName2->z==0) ); @@ -374,7 +378,7 @@ static void addArgumentToVtab(Parse *pParse){ const char *z = (const char*)pParse->sArg.z; int n = pParse->sArg.n; sqlite3 *db = pParse->db; - addModuleArgument(db, pParse->pNewTable, sqlite3DbStrNDup(db, z, n)); + addModuleArgument(pParse, pParse->pNewTable, sqlite3DbStrNDup(db, z, n)); } } @@ -663,7 +667,8 @@ static int growVTrans(sqlite3 *db){ /* Grow the sqlite3.aVTrans array if required */ if( (db->nVTrans%ARRAY_INCR)==0 ){ VTable **aVTrans; - int nBytes = sizeof(sqlite3_vtab *) * (db->nVTrans + ARRAY_INCR); + sqlite3_int64 nBytes = sizeof(sqlite3_vtab*)* + ((sqlite3_int64)db->nVTrans + ARRAY_INCR); aVTrans = sqlite3DbRealloc(db, (void *)db->aVTrans, nBytes); if( !aVTrans ){ return SQLITE_NOMEM_BKPT; @@ -1159,9 +1164,9 @@ int sqlite3VtabEponymousTableInit(Parse *pParse, Module *pMod){ pTab->pSchema = db->aDb[0].pSchema; assert( pTab->nModuleArg==0 ); pTab->iPKey = -1; - addModuleArgument(db, pTab, sqlite3DbStrDup(db, pTab->zName)); - addModuleArgument(db, pTab, 0); - addModuleArgument(db, pTab, sqlite3DbStrDup(db, pTab->zName)); + addModuleArgument(pParse, pTab, sqlite3DbStrDup(db, pTab->zName)); + addModuleArgument(pParse, pTab, 0); + addModuleArgument(pParse, pTab, sqlite3DbStrDup(db, pTab->zName)); rc = vtabCallConstructor(db, pTab, pMod, pModule->xConnect, &zErr); if( rc ){ sqlite3ErrorMsg(pParse, "%s", zErr); diff --git a/src/wal.c b/src/wal.c index 4088bf2ec8..845ac56792 100644 --- a/src/wal.c +++ b/src/wal.c @@ -575,7 +575,7 @@ static SQLITE_NOINLINE int walIndexPageRealloc( /* Enlarge the pWal->apWiData[] array if required */ if( pWal->nWiData<=iPage ){ - int nByte = sizeof(u32*)*(iPage+1); + sqlite3_int64 nByte = sizeof(u32*)*(iPage+1); volatile u32 **apNew; apNew = (volatile u32 **)sqlite3_realloc64((void *)pWal->apWiData, nByte); if( !apNew ){ @@ -679,6 +679,7 @@ static void walChecksumBytes( assert( nByte>=8 ); assert( (nByte&0x00000007)==0 ); + assert( nByte<=65536 ); if( nativeCksum ){ do { @@ -986,6 +987,7 @@ static void walCleanupHash(Wal *pWal){ int iLimit = 0; /* Zero values greater than this */ int nByte; /* Number of bytes to zero in aPgno[] */ int i; /* Used to iterate through aHash[] */ + int rc; /* Return code form walHashGet() */ assert( pWal->writeLock ); testcase( pWal->hdr.mxFrame==HASHTABLE_NPAGE_ONE-1 ); @@ -996,11 +998,12 @@ static void walCleanupHash(Wal *pWal){ /* Obtain pointers to the hash-table and page-number array containing ** the entry that corresponds to frame pWal->hdr.mxFrame. It is guaranteed - ** that the page said hash-table and array reside on is already mapped. + ** that the page said hash-table and array reside on is already mapped.(1) */ assert( pWal->nWiData>walFramePage(pWal->hdr.mxFrame) ); assert( pWal->apWiData[walFramePage(pWal->hdr.mxFrame)] ); - walHashGet(pWal, walFramePage(pWal->hdr.mxFrame), &sLoc); + rc = walHashGet(pWal, walFramePage(pWal->hdr.mxFrame), &sLoc); + if( NEVER(rc) ) return; /* Defense-in-depth, in case (1) above is wrong */ /* Zero all hash-table entries that correspond to frame numbers greater ** than pWal->hdr.mxFrame. @@ -1614,7 +1617,7 @@ static int walIteratorInit(Wal *pWal, u32 nBackfill, WalIterator **pp){ WalIterator *p; /* Return value */ int nSegment; /* Number of segments to merge */ u32 iLast; /* Last frame in log */ - int nByte; /* Number of bytes to allocate */ + sqlite3_int64 nByte; /* Number of bytes to allocate */ int i; /* Iterator variable */ ht_slot *aTmp; /* Temp space used by merge-sort */ int rc = SQLITE_OK; /* Return Code */ diff --git a/src/where.c b/src/where.c index a09f7624f8..cd00fe96b8 100644 --- a/src/where.c +++ b/src/where.c @@ -3335,11 +3335,11 @@ static int whereLoopAddVirtual( rc = whereLoopAddVirtualOne(pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn); /* If the call to xBestIndex() with all terms enabled produced a plan - ** that does not require any source tables (IOW: a plan with mBest==0), - ** then there is no point in making any further calls to xBestIndex() - ** since they will all return the same result (if the xBestIndex() - ** implementation is sane). */ - if( rc==SQLITE_OK && (mBest = (pNew->prereq & ~mPrereq))!=0 ){ + ** that does not require any source tables (IOW: a plan with mBest==0) + ** and does not use an IN(...) operator, then there is no point in making + ** any further calls to xBestIndex() since they will all return the same + ** result (if the xBestIndex() implementation is sane). */ + if( rc==SQLITE_OK && ((mBest = (pNew->prereq & ~mPrereq))!=0 || bIn) ){ int seenZero = 0; /* True if a plan with no prereqs seen */ int seenZeroNoIN = 0; /* Plan with no prereqs and no IN(...) seen */ Bitmask mPrev = 0; diff --git a/src/wherecode.c b/src/wherecode.c index 79189386b6..f710690189 100644 --- a/src/wherecode.c +++ b/src/wherecode.c @@ -1159,6 +1159,34 @@ static void whereIndexExprTrans( } } +/* +** The pTruth expression is always true because it is the WHERE clause +** a partial index that is driving a query loop. Look through all of the +** WHERE clause terms on the query, and if any of those terms must be +** true because pTruth is true, then mark those WHERE clause terms as +** coded. +*/ +static void whereApplyPartialIndexConstraints( + Expr *pTruth, + int iTabCur, + WhereClause *pWC +){ + int i; + WhereTerm *pTerm; + while( pTruth->op==TK_AND ){ + whereApplyPartialIndexConstraints(pTruth->pLeft, iTabCur, pWC); + pTruth = pTruth->pRight; + } + for(i=0, pTerm=pWC->a; inTerm; i++, pTerm++){ + Expr *pExpr; + if( pTerm->wtFlags & TERM_CODED ) continue; + pExpr = pTerm->pExpr; + if( sqlite3ExprCompare(0, pExpr, pTruth, iTabCur)==0 ){ + pTerm->wtFlags |= TERM_CODED; + } + } +} + /* ** Generate code for the start of the iLevel-th loop in the WHERE clause ** implementation described by pWInfo. @@ -1768,6 +1796,14 @@ Bitmask sqlite3WhereCodeOneLoopStart( whereIndexExprTrans(pIdx, iCur, iIdxCur, pWInfo); } + /* If a partial index is driving the loop, try to eliminate WHERE clause + ** terms from the query that must be true due to the WHERE clause of + ** the partial index + */ + if( pIdx->pPartIdxWhere ){ + whereApplyPartialIndexConstraints(pIdx->pPartIdxWhere, iCur, pWC); + } + /* Record the instruction used to terminate the loop. */ if( pLoop->wsFlags & WHERE_ONEROW ){ pLevel->op = OP_Noop; @@ -1931,7 +1967,12 @@ Bitmask sqlite3WhereCodeOneLoopStart( pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr); } if( pAndExpr ){ - pAndExpr = sqlite3PExpr(pParse, TK_AND|TKFLG_DONTFOLD, 0, pAndExpr); + /* The extra 0x10000 bit on the opcode is masked off and does not + ** become part of the new Expr.op. However, it does make the + ** op==TK_AND comparison inside of sqlite3PExpr() false, and this + ** prevents sqlite3PExpr() from implementing AND short-circuit + ** optimization, which we do not want here. */ + pAndExpr = sqlite3PExpr(pParse, TK_AND|0x10000, 0, pAndExpr); } } @@ -2161,8 +2202,9 @@ Bitmask sqlite3WhereCodeOneLoopStart( u32 x = pLevel->iLikeRepCntr; if( x>0 ){ skipLikeAddr = sqlite3VdbeAddOp1(v, (x&1)?OP_IfNot:OP_If,(int)(x>>1)); + VdbeCoverageIf(v, (x&1)==1); + VdbeCoverageIf(v, (x&1)==0); } - VdbeCoverage(v); #endif } #ifdef WHERETRACE_ENABLED /* 0xffff */ diff --git a/src/whereexpr.c b/src/whereexpr.c index db0a38d622..961495c584 100644 --- a/src/whereexpr.c +++ b/src/whereexpr.c @@ -1520,6 +1520,12 @@ Bitmask sqlite3WhereExprUsageNN(WhereMaskSet *pMaskSet, Expr *p){ }else if( p->x.pList ){ mask |= sqlite3WhereExprListUsage(pMaskSet, p->x.pList); } +#ifndef SQLITE_OMIT_WINDOWFUNC + if( p->op==TK_FUNCTION && p->y.pWin ){ + mask |= sqlite3WhereExprListUsage(pMaskSet, p->y.pWin->pPartition); + mask |= sqlite3WhereExprListUsage(pMaskSet, p->y.pWin->pOrderBy); + } +#endif return mask; } Bitmask sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p){ diff --git a/src/window.c b/src/window.c index b0d28c493f..4b5184d918 100644 --- a/src/window.c +++ b/src/window.c @@ -198,6 +198,96 @@ static void dense_rankValueFunc(sqlite3_context *pCtx){ } } +/* +** Implementation of built-in window function nth_value(). This +** implementation is used in "slow mode" only - when the EXCLUDE clause +** is not set to the default value "NO OTHERS". +*/ +struct NthValueCtx { + i64 nStep; + sqlite3_value *pValue; +}; +static void nth_valueStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct NthValueCtx *p; + p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p ){ + i64 iVal; + switch( sqlite3_value_numeric_type(apArg[1]) ){ + case SQLITE_INTEGER: + iVal = sqlite3_value_int64(apArg[1]); + break; + case SQLITE_FLOAT: { + double fVal = sqlite3_value_double(apArg[1]); + if( ((i64)fVal)!=fVal ) goto error_out; + iVal = (i64)fVal; + break; + } + default: + goto error_out; + } + if( iVal<=0 ) goto error_out; + + p->nStep++; + if( iVal==p->nStep ){ + p->pValue = sqlite3_value_dup(apArg[0]); + if( !p->pValue ){ + sqlite3_result_error_nomem(pCtx); + } + } + } + UNUSED_PARAMETER(nArg); + UNUSED_PARAMETER(apArg); + return; + + error_out: + sqlite3_result_error( + pCtx, "second argument to nth_value must be a positive integer", -1 + ); +} +static void nth_valueFinalizeFunc(sqlite3_context *pCtx){ + struct NthValueCtx *p; + p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, 0); + if( p && p->pValue ){ + sqlite3_result_value(pCtx, p->pValue); + sqlite3_value_free(p->pValue); + p->pValue = 0; + } +} +#define nth_valueInvFunc noopStepFunc +#define nth_valueValueFunc noopValueFunc + +static void first_valueStepFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct NthValueCtx *p; + p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p && p->pValue==0 ){ + p->pValue = sqlite3_value_dup(apArg[0]); + if( !p->pValue ){ + sqlite3_result_error_nomem(pCtx); + } + } + UNUSED_PARAMETER(nArg); + UNUSED_PARAMETER(apArg); +} +static void first_valueFinalizeFunc(sqlite3_context *pCtx){ + struct NthValueCtx *p; + p = (struct NthValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + if( p && p->pValue ){ + sqlite3_result_value(pCtx, p->pValue); + sqlite3_value_free(p->pValue); + p->pValue = 0; + } +} +#define first_valueInvFunc noopStepFunc +#define first_valueValueFunc noopValueFunc + /* ** Implementation of built-in window function rank(). Assumes that ** the window frame has been set to: @@ -233,7 +323,7 @@ static void rankValueFunc(sqlite3_context *pCtx){ ** Implementation of built-in window function percent_rank(). Assumes that ** the window frame has been set to: ** -** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +** GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING */ static void percent_rankStepFunc( sqlite3_context *pCtx, @@ -241,38 +331,44 @@ static void percent_rankStepFunc( sqlite3_value **apArg ){ struct CallCount *p; - UNUSED_PARAMETER(nArg); assert( nArg==1 ); - + UNUSED_PARAMETER(nArg); assert( nArg==0 ); + UNUSED_PARAMETER(apArg); p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); if( p ){ - if( p->nTotal==0 ){ - p->nTotal = sqlite3_value_int64(apArg[0]); - } - p->nStep++; - if( p->nValue==0 ){ - p->nValue = p->nStep; - } + p->nTotal++; } } +static void percent_rankInvFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct CallCount *p; + UNUSED_PARAMETER(nArg); assert( nArg==0 ); + UNUSED_PARAMETER(apArg); + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + p->nStep++; +} static void percent_rankValueFunc(sqlite3_context *pCtx){ struct CallCount *p; p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); if( p ){ + p->nValue = p->nStep; if( p->nTotal>1 ){ - double r = (double)(p->nValue-1) / (double)(p->nTotal-1); + double r = (double)p->nValue / (double)(p->nTotal-1); sqlite3_result_double(pCtx, r); }else{ sqlite3_result_double(pCtx, 0.0); } - p->nValue = 0; } } +#define percent_rankFinalizeFunc percent_rankValueFunc /* ** Implementation of built-in window function cume_dist(). Assumes that ** the window frame has been set to: ** -** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW +** GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING */ static void cume_distStepFunc( sqlite3_context *pCtx, @@ -280,24 +376,33 @@ static void cume_distStepFunc( sqlite3_value **apArg ){ struct CallCount *p; - assert( nArg==1 ); UNUSED_PARAMETER(nArg); - + UNUSED_PARAMETER(nArg); assert( nArg==0 ); + UNUSED_PARAMETER(apArg); p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); if( p ){ - if( p->nTotal==0 ){ - p->nTotal = sqlite3_value_int64(apArg[0]); - } - p->nStep++; + p->nTotal++; } } -static void cume_distValueFunc(sqlite3_context *pCtx){ +static void cume_distInvFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ struct CallCount *p; + UNUSED_PARAMETER(nArg); assert( nArg==0 ); + UNUSED_PARAMETER(apArg); p = (struct CallCount*)sqlite3_aggregate_context(pCtx, sizeof(*p)); - if( p && p->nTotal ){ + p->nStep++; +} +static void cume_distValueFunc(sqlite3_context *pCtx){ + struct CallCount *p; + p = (struct CallCount*)sqlite3_aggregate_context(pCtx, 0); + if( p ){ double r = (double)(p->nStep) / (double)(p->nTotal); sqlite3_result_double(pCtx, r); } } +#define cume_distFinalizeFunc cume_distValueFunc /* ** Context object for ntile() window function. @@ -312,7 +417,7 @@ struct NtileCtx { ** Implementation of ntile(). This assumes that the window frame has ** been coerced to: ** -** ROWS UNBOUNDED PRECEDING AND CURRENT ROW +** ROWS CURRENT ROW AND UNBOUNDED FOLLOWING */ static void ntileStepFunc( sqlite3_context *pCtx, @@ -320,32 +425,42 @@ static void ntileStepFunc( sqlite3_value **apArg ){ struct NtileCtx *p; - assert( nArg==2 ); UNUSED_PARAMETER(nArg); + assert( nArg==1 ); UNUSED_PARAMETER(nArg); p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); if( p ){ if( p->nTotal==0 ){ p->nParam = sqlite3_value_int64(apArg[0]); - p->nTotal = sqlite3_value_int64(apArg[1]); if( p->nParam<=0 ){ sqlite3_result_error( pCtx, "argument of ntile must be a positive integer", -1 ); } } - p->iRow++; + p->nTotal++; } } +static void ntileInvFunc( + sqlite3_context *pCtx, + int nArg, + sqlite3_value **apArg +){ + struct NtileCtx *p; + assert( nArg==1 ); UNUSED_PARAMETER(nArg); + UNUSED_PARAMETER(apArg); + p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + p->iRow++; +} static void ntileValueFunc(sqlite3_context *pCtx){ struct NtileCtx *p; p = (struct NtileCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); if( p && p->nParam>0 ){ int nSize = (p->nTotal / p->nParam); if( nSize==0 ){ - sqlite3_result_int64(pCtx, p->iRow); + sqlite3_result_int64(pCtx, p->iRow+1); }else{ i64 nLarge = p->nTotal - p->nParam*nSize; i64 iSmall = nLarge*(nSize+1); - i64 iRow = p->iRow-1; + i64 iRow = p->iRow; assert( (nLarge*(nSize+1) + (p->nParam-nLarge)*nSize)==p->nTotal ); @@ -357,6 +472,7 @@ static void ntileValueFunc(sqlite3_context *pCtx){ } } } +#define ntileFinalizeFunc ntileValueFunc /* ** Context object for last_value() window function. @@ -406,7 +522,7 @@ static void last_valueInvFunc( } static void last_valueValueFunc(sqlite3_context *pCtx){ struct LastValueCtx *p; - p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, sizeof(*p)); + p = (struct LastValueCtx*)sqlite3_aggregate_context(pCtx, 0); if( p && p->pVal ){ sqlite3_result_value(pCtx, p->pVal); } @@ -496,12 +612,12 @@ void sqlite3WindowFunctions(void){ WINDOWFUNCX(row_number, 0, 0), WINDOWFUNCX(dense_rank, 0, 0), WINDOWFUNCX(rank, 0, 0), - WINDOWFUNCX(percent_rank, 0, SQLITE_FUNC_WINDOW_SIZE), - WINDOWFUNCX(cume_dist, 0, SQLITE_FUNC_WINDOW_SIZE), - WINDOWFUNCX(ntile, 1, SQLITE_FUNC_WINDOW_SIZE), + WINDOWFUNCALL(percent_rank, 0, 0), + WINDOWFUNCALL(cume_dist, 0, 0), + WINDOWFUNCALL(ntile, 1, 0), WINDOWFUNCALL(last_value, 1, 0), - WINDOWFUNCNOOP(nth_value, 2, 0), - WINDOWFUNCNOOP(first_value, 1, 0), + WINDOWFUNCALL(nth_value, 2, 0), + WINDOWFUNCALL(first_value, 1, 0), WINDOWFUNCNOOP(lead, 1, 0), WINDOWFUNCNOOP(lead, 2, 0), WINDOWFUNCNOOP(lead, 3, 0), @@ -512,6 +628,17 @@ void sqlite3WindowFunctions(void){ sqlite3InsertBuiltinFuncs(aWindowFuncs, ArraySize(aWindowFuncs)); } +static Window *windowFind(Parse *pParse, Window *pList, const char *zName){ + Window *p; + for(p=pList; p; p=p->pNextWin){ + if( sqlite3StrICmp(p->zName, zName)==0 ) break; + } + if( p==0 ){ + sqlite3ErrorMsg(pParse, "no such window: %s", zName); + } + return p; +} + /* ** This function is called immediately after resolving the function name ** for a window function within a SELECT statement. Argument pList is a @@ -535,48 +662,66 @@ void sqlite3WindowUpdate( Window *pWin, /* Window frame to update */ FuncDef *pFunc /* Window function definition */ ){ - if( pWin->zName && pWin->eType==0 ){ - Window *p; - for(p=pList; p; p=p->pNextWin){ - if( sqlite3StrICmp(p->zName, pWin->zName)==0 ) break; - } - if( p==0 ){ - sqlite3ErrorMsg(pParse, "no such window: %s", pWin->zName); - return; - } + if( pWin->zName && pWin->eFrmType==0 ){ + Window *p = windowFind(pParse, pList, pWin->zName); + if( p==0 ) return; pWin->pPartition = sqlite3ExprListDup(pParse->db, p->pPartition, 0); pWin->pOrderBy = sqlite3ExprListDup(pParse->db, p->pOrderBy, 0); pWin->pStart = sqlite3ExprDup(pParse->db, p->pStart, 0); pWin->pEnd = sqlite3ExprDup(pParse->db, p->pEnd, 0); pWin->eStart = p->eStart; pWin->eEnd = p->eEnd; - pWin->eType = p->eType; + pWin->eFrmType = p->eFrmType; + pWin->eExclude = p->eExclude; + }else{ + sqlite3WindowChain(pParse, pWin, pList); } + if( (pWin->eFrmType==TK_RANGE) + && (pWin->pStart || pWin->pEnd) + && (pWin->pOrderBy==0 || pWin->pOrderBy->nExpr!=1) + ){ + sqlite3ErrorMsg(pParse, + "RANGE with offset PRECEDING/FOLLOWING requires one ORDER BY expression" + ); + }else if( pFunc->funcFlags & SQLITE_FUNC_WINDOW ){ sqlite3 *db = pParse->db; if( pWin->pFilter ){ sqlite3ErrorMsg(pParse, "FILTER clause may only be used with aggregate window functions" ); - }else - if( pFunc->zName==row_numberName || pFunc->zName==ntileName ){ - sqlite3ExprDelete(db, pWin->pStart); - sqlite3ExprDelete(db, pWin->pEnd); - pWin->pStart = pWin->pEnd = 0; - pWin->eType = TK_ROWS; - pWin->eStart = TK_UNBOUNDED; - pWin->eEnd = TK_CURRENT; - }else - - if( pFunc->zName==dense_rankName || pFunc->zName==rankName - || pFunc->zName==percent_rankName || pFunc->zName==cume_distName - ){ - sqlite3ExprDelete(db, pWin->pStart); - sqlite3ExprDelete(db, pWin->pEnd); - pWin->pStart = pWin->pEnd = 0; - pWin->eType = TK_RANGE; - pWin->eStart = TK_UNBOUNDED; - pWin->eEnd = TK_CURRENT; + }else{ + struct WindowUpdate { + const char *zFunc; + int eFrmType; + int eStart; + int eEnd; + } aUp[] = { + { row_numberName, TK_ROWS, TK_UNBOUNDED, TK_CURRENT }, + { dense_rankName, TK_RANGE, TK_UNBOUNDED, TK_CURRENT }, + { rankName, TK_RANGE, TK_UNBOUNDED, TK_CURRENT }, + { percent_rankName, TK_GROUPS, TK_CURRENT, TK_UNBOUNDED }, + { cume_distName, TK_GROUPS, TK_FOLLOWING, TK_UNBOUNDED }, + { ntileName, TK_ROWS, TK_CURRENT, TK_UNBOUNDED }, + { leadName, TK_ROWS, TK_UNBOUNDED, TK_UNBOUNDED }, + { lagName, TK_ROWS, TK_UNBOUNDED, TK_CURRENT }, + }; + int i; + for(i=0; izName==aUp[i].zFunc ){ + sqlite3ExprDelete(db, pWin->pStart); + sqlite3ExprDelete(db, pWin->pEnd); + pWin->pEnd = pWin->pStart = 0; + pWin->eFrmType = aUp[i].eFrmType; + pWin->eStart = aUp[i].eStart; + pWin->eEnd = aUp[i].eEnd; + pWin->eExclude = 0; + if( pWin->eStart==TK_FOLLOWING ){ + pWin->pStart = sqlite3Expr(db, TK_INTEGER, "1"); + } + break; + } + } } } pWin->pFunc = pFunc; @@ -781,6 +926,7 @@ int sqlite3WindowRewrite(Parse *pParse, Select *p){ ** The OpenEphemeral instruction is coded later, after it is known how ** many columns the table will have. */ pMWin->iEphCsr = pParse->nTab++; + pParse->nTab += 3; selectWindowRewriteEList(pParse, pMWin, pSrc, p->pEList, &pSublist); selectWindowRewriteEList(pParse, pMWin, pSrc, p->pOrderBy, &pSublist); @@ -836,6 +982,9 @@ int sqlite3WindowRewrite(Parse *pParse, Select *p){ } sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pMWin->iEphCsr, pSublist->nExpr); + sqlite3VdbeAddOp2(v, OP_OpenDup, pMWin->iEphCsr+1, pMWin->iEphCsr); + sqlite3VdbeAddOp2(v, OP_OpenDup, pMWin->iEphCsr+2, pMWin->iEphCsr); + sqlite3VdbeAddOp2(v, OP_OpenDup, pMWin->iEphCsr+3, pMWin->iEphCsr); }else{ sqlite3SelectDelete(db, pSub); } @@ -856,6 +1005,7 @@ void sqlite3WindowDelete(sqlite3 *db, Window *p){ sqlite3ExprDelete(db, p->pEnd); sqlite3ExprDelete(db, p->pStart); sqlite3DbFree(db, p->zName); + sqlite3DbFree(db, p->zBase); sqlite3DbFree(db, p); } } @@ -892,16 +1042,18 @@ static Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr){ */ Window *sqlite3WindowAlloc( Parse *pParse, /* Parsing context */ - int eType, /* Frame type. TK_RANGE or TK_ROWS */ + int eType, /* Frame type. TK_RANGE, TK_ROWS, TK_GROUPS, or 0 */ int eStart, /* Start type: CURRENT, PRECEDING, FOLLOWING, UNBOUNDED */ Expr *pStart, /* Start window size if TK_PRECEDING or FOLLOWING */ int eEnd, /* End type: CURRENT, FOLLOWING, TK_UNBOUNDED, PRECEDING */ - Expr *pEnd /* End window size if TK_FOLLOWING or PRECEDING */ + Expr *pEnd, /* End window size if TK_FOLLOWING or PRECEDING */ + u8 eExclude /* EXCLUDE clause */ ){ Window *pWin = 0; + int bImplicitFrame = 0; /* Parser assures the following: */ - assert( eType==TK_RANGE || eType==TK_ROWS ); + assert( eType==0 || eType==TK_RANGE || eType==TK_ROWS || eType==TK_GROUPS ); assert( eStart==TK_CURRENT || eStart==TK_PRECEDING || eStart==TK_UNBOUNDED || eStart==TK_FOLLOWING ); assert( eEnd==TK_CURRENT || eEnd==TK_FOLLOWING @@ -909,13 +1061,9 @@ Window *sqlite3WindowAlloc( assert( (eStart==TK_PRECEDING || eStart==TK_FOLLOWING)==(pStart!=0) ); assert( (eEnd==TK_FOLLOWING || eEnd==TK_PRECEDING)==(pEnd!=0) ); - - /* If a frame is declared "RANGE" (not "ROWS"), then it may not use - ** either " PRECEDING" or " FOLLOWING". - */ - if( eType==TK_RANGE && (pStart!=0 || pEnd!=0) ){ - sqlite3ErrorMsg(pParse, "RANGE must use only UNBOUNDED or CURRENT ROW"); - goto windowAllocErr; + if( eType==0 ){ + bImplicitFrame = 1; + eType = TK_RANGE; } /* Additionally, the @@ -935,15 +1083,20 @@ Window *sqlite3WindowAlloc( if( (eStart==TK_CURRENT && eEnd==TK_PRECEDING) || (eStart==TK_FOLLOWING && (eEnd==TK_PRECEDING || eEnd==TK_CURRENT)) ){ - sqlite3ErrorMsg(pParse, "unsupported frame delimiter for ROWS"); + sqlite3ErrorMsg(pParse, "unsupported frame specification"); goto windowAllocErr; } pWin = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( pWin==0 ) goto windowAllocErr; - pWin->eType = eType; + pWin->eFrmType = eType; pWin->eStart = eStart; pWin->eEnd = eEnd; + if( eExclude==0 && OptimizationDisabled(pParse->db, SQLITE_WindowFunc) ){ + eExclude = TK_NO; + } + pWin->eExclude = eExclude; + pWin->bImplicitFrame = bImplicitFrame; pWin->pEnd = sqlite3WindowOffsetExpr(pParse, pEnd); pWin->pStart = sqlite3WindowOffsetExpr(pParse, pStart); return pWin; @@ -954,6 +1107,69 @@ Window *sqlite3WindowAlloc( return 0; } +/* +** Attach PARTITION and ORDER BY clauses pPartition and pOrderBy to window +** pWin. Also, if parameter pBase is not NULL, set pWin->zBase to the +** equivalent nul-terminated string. +*/ +Window *sqlite3WindowAssemble( + Parse *pParse, + Window *pWin, + ExprList *pPartition, + ExprList *pOrderBy, + Token *pBase +){ + if( pWin ){ + pWin->pPartition = pPartition; + pWin->pOrderBy = pOrderBy; + if( pBase ){ + pWin->zBase = sqlite3DbStrNDup(pParse->db, pBase->z, pBase->n); + } + }else{ + sqlite3ExprListDelete(pParse->db, pPartition); + sqlite3ExprListDelete(pParse->db, pOrderBy); + } + return pWin; +} + +/* +** Window *pWin has just been created from a WINDOW clause. Tokne pBase +** is the base window. Earlier windows from the same WINDOW clause are +** stored in the linked list starting at pWin->pNextWin. This function +** either updates *pWin according to the base specification, or else +** leaves an error in pParse. +*/ +void sqlite3WindowChain(Parse *pParse, Window *pWin, Window *pList){ + if( pWin->zBase ){ + sqlite3 *db = pParse->db; + Window *pExist = windowFind(pParse, pList, pWin->zBase); + if( pExist ){ + const char *zErr = 0; + /* Check for errors */ + if( pWin->pPartition ){ + zErr = "PARTITION clause"; + }else if( pExist->pOrderBy && pWin->pOrderBy ){ + zErr = "ORDER BY clause"; + }else if( pExist->bImplicitFrame==0 ){ + zErr = "frame specification"; + } + if( zErr ){ + sqlite3ErrorMsg(pParse, + "cannot override %s of window: %s", zErr, pWin->zBase + ); + }else{ + pWin->pPartition = sqlite3ExprListDup(db, pExist->pPartition, 0); + if( pExist->pOrderBy ){ + assert( pWin->pOrderBy==0 ); + pWin->pOrderBy = sqlite3ExprListDup(db, pExist->pOrderBy, 0); + } + sqlite3DbFree(db, pWin->zBase); + pWin->zBase = 0; + } + } + } +} + /* ** Attach window object pWin to expression p. */ @@ -982,9 +1198,10 @@ void sqlite3WindowAttach(Parse *pParse, Expr *p, Window *pWin){ ** Identical window objects can be processed in a single scan. */ int sqlite3WindowCompare(Parse *pParse, Window *p1, Window *p2){ - if( p1->eType!=p2->eType ) return 1; + if( p1->eFrmType!=p2->eFrmType ) return 1; if( p1->eStart!=p2->eStart ) return 1; if( p1->eEnd!=p2->eEnd ) return 1; + if( p1->eExclude!=p2->eExclude ) return 1; if( sqlite3ExprCompare(pParse, p1->pStart, p2->pStart, -1) ) return 1; if( sqlite3ExprCompare(pParse, p1->pEnd, p2->pEnd, -1) ) return 1; if( sqlite3ExprListCompare(p1->pPartition, p2->pPartition, -1) ) return 1; @@ -1001,12 +1218,27 @@ int sqlite3WindowCompare(Parse *pParse, Window *p1, Window *p2){ void sqlite3WindowCodeInit(Parse *pParse, Window *pMWin){ Window *pWin; Vdbe *v = sqlite3GetVdbe(pParse); - int nPart = (pMWin->pPartition ? pMWin->pPartition->nExpr : 0); - nPart += (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0); - if( nPart ){ + + /* Allocate registers to use for PARTITION BY values, if any. Initialize + ** said registers to NULL. */ + if( pMWin->pPartition ){ + int nExpr = pMWin->pPartition->nExpr; pMWin->regPart = pParse->nMem+1; - pParse->nMem += nPart; - sqlite3VdbeAddOp3(v, OP_Null, 0, pMWin->regPart, pMWin->regPart+nPart-1); + pParse->nMem += nExpr; + sqlite3VdbeAddOp3(v, OP_Null, 0, pMWin->regPart, pMWin->regPart+nExpr-1); + } + + pMWin->regOne = ++pParse->nMem; + sqlite3VdbeAddOp2(v, OP_Integer, 1, pMWin->regOne); + + if( pMWin->eExclude ){ + pMWin->regStartRowid = ++pParse->nMem; + pMWin->regEndRowid = ++pParse->nMem; + pMWin->csrApp = pParse->nTab++; + sqlite3VdbeAddOp2(v, OP_Integer, 1, pMWin->regStartRowid); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pMWin->regEndRowid); + sqlite3VdbeAddOp2(v, OP_OpenDup, pMWin->csrApp, pMWin->iEphCsr); + return; } for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ @@ -1035,20 +1267,24 @@ void sqlite3WindowCodeInit(Parse *pParse, Window *pMWin){ else if( p->zName==nth_valueName || p->zName==first_valueName ){ /* Allocate two registers at pWin->regApp. These will be used to ** store the start and end index of the current frame. */ - assert( pMWin->iEphCsr ); pWin->regApp = pParse->nMem+1; pWin->csrApp = pParse->nTab++; pParse->nMem += 2; sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr); } else if( p->zName==leadName || p->zName==lagName ){ - assert( pMWin->iEphCsr ); pWin->csrApp = pParse->nTab++; sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr); } } } +#define WINDOW_STARTING_INT 0 +#define WINDOW_ENDING_INT 1 +#define WINDOW_NTH_VALUE_INT 2 +#define WINDOW_STARTING_NUM 3 +#define WINDOW_ENDING_NUM 4 + /* ** A "PRECEDING " (eCond==0) or "FOLLOWING " (eCond==1) or the ** value of the second argument to nth_value() (eCond==2) has just been @@ -1056,25 +1292,42 @@ void sqlite3WindowCodeInit(Parse *pParse, Window *pMWin){ ** code to check that the value is a non-negative integer and throws an ** exception if it is not. */ -static void windowCheckIntValue(Parse *pParse, int reg, int eCond){ +static void windowCheckValue(Parse *pParse, int reg, int eCond){ static const char *azErr[] = { "frame starting offset must be a non-negative integer", "frame ending offset must be a non-negative integer", - "second argument to nth_value must be a positive integer" + "second argument to nth_value must be a positive integer", + "frame starting offset must be a non-negative number", + "frame ending offset must be a non-negative number", }; - static int aOp[] = { OP_Ge, OP_Ge, OP_Gt }; + static int aOp[] = { OP_Ge, OP_Ge, OP_Gt, OP_Ge, OP_Ge }; Vdbe *v = sqlite3GetVdbe(pParse); int regZero = sqlite3GetTempReg(pParse); - assert( eCond==0 || eCond==1 || eCond==2 ); + assert( eCond>=0 && eCond=WINDOW_STARTING_NUM ){ + int regString = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp4(v, OP_String8, 0, regString, 0, "", P4_STATIC); + sqlite3VdbeAddOp3(v, OP_Ge, regString, sqlite3VdbeCurrentAddr(v)+2, reg); + sqlite3VdbeChangeP5(v, SQLITE_AFF_NUMERIC|SQLITE_JUMPIFNULL); + VdbeCoverage(v); + assert( eCond==3 || eCond==4 ); + VdbeCoverageIf(v, eCond==3); + VdbeCoverageIf(v, eCond==4); + }else{ + sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverage(v); + assert( eCond==0 || eCond==1 || eCond==2 ); + VdbeCoverageIf(v, eCond==0); + VdbeCoverageIf(v, eCond==1); + VdbeCoverageIf(v, eCond==2); + } sqlite3VdbeAddOp3(v, aOp[eCond], regZero, sqlite3VdbeCurrentAddr(v)+2, reg); - VdbeCoverageNeverNullIf(v, eCond==0); - VdbeCoverageNeverNullIf(v, eCond==1); + VdbeCoverageNeverNullIf(v, eCond==0); /* NULL case captured by */ + VdbeCoverageNeverNullIf(v, eCond==1); /* the OP_MustBeInt */ VdbeCoverageNeverNullIf(v, eCond==2); + VdbeCoverageNeverNullIf(v, eCond==3); /* NULL case caught by */ + VdbeCoverageNeverNullIf(v, eCond==4); /* the OP_Ge */ sqlite3MayAbort(pParse); sqlite3VdbeAddOp2(v, OP_Halt, SQLITE_ERROR, OE_Abort); sqlite3VdbeAppendP4(v, (void*)azErr[eCond], P4_STATIC); @@ -1114,37 +1367,28 @@ static void windowAggStep( Window *pMWin, /* Linked list of window functions */ int csr, /* Read arguments from this cursor */ int bInverse, /* True to invoke xInverse instead of xStep */ - int reg, /* Array of registers */ - int regPartSize /* Register containing size of partition */ + int reg /* Array of registers */ ){ Vdbe *v = sqlite3GetVdbe(pParse); Window *pWin; for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ - int flags = pWin->pFunc->funcFlags; + FuncDef *pFunc = pWin->pFunc; int regArg; int nArg = windowArgCount(pWin); + int i; - if( csr>=0 ){ - int i; - for(i=0; izName!=nth_valueName ){ sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+i, reg+i); + }else{ + sqlite3VdbeAddOp3(v, OP_Column, pMWin->iEphCsr, pWin->iArgCol+i, reg+i); } - regArg = reg; - if( flags & SQLITE_FUNC_WINDOW_SIZE ){ - if( nArg==0 ){ - regArg = regPartSize; - }else{ - sqlite3VdbeAddOp2(v, OP_SCopy, regPartSize, reg+nArg); - } - nArg++; - } - }else{ - assert( !(flags & SQLITE_FUNC_WINDOW_SIZE) ); - regArg = reg + pWin->iArgCol; } + regArg = reg; - if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX) - && pWin->eStart!=TK_UNBOUNDED + if( pMWin->regStartRowid==0 + && (pFunc->funcFlags & SQLITE_FUNC_MINMAX) + && (pWin->eStart!=TK_UNBOUNDED) ){ int addrIsNull = sqlite3VdbeAddOp1(v, OP_IsNull, regArg); VdbeCoverage(v); @@ -1161,34 +1405,24 @@ static void windowAggStep( } sqlite3VdbeJumpHere(v, addrIsNull); }else if( pWin->regApp ){ - assert( pWin->pFunc->zName==nth_valueName - || pWin->pFunc->zName==first_valueName + assert( pFunc->zName==nth_valueName + || pFunc->zName==first_valueName ); assert( bInverse==0 || bInverse==1 ); sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1-bInverse, 1); - }else if( pWin->pFunc->zName==leadName - || pWin->pFunc->zName==lagName - ){ - /* no-op */ - }else{ + }else if( pFunc->xSFunc!=noopStepFunc ){ int addrIf = 0; if( pWin->pFilter ){ int regTmp; assert( nArg==0 || nArg==pWin->pOwner->x.pList->nExpr ); assert( nArg || pWin->pOwner->x.pList==0 ); - if( csr>0 ){ - regTmp = sqlite3GetTempReg(pParse); - sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp); - }else{ - regTmp = regArg + nArg; - } + regTmp = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol+nArg,regTmp); addrIf = sqlite3VdbeAddOp3(v, OP_IfNot, regTmp, 0, 1); VdbeCoverage(v); - if( csr>0 ){ - sqlite3ReleaseTempReg(pParse, regTmp); - } + sqlite3ReleaseTempReg(pParse, regTmp); } - if( pWin->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){ + if( pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){ CollSeq *pColl; assert( nArg>0 ); pColl = sqlite3ExprNNCollSeq(pParse, pWin->pOwner->x.pList->a[0].pExpr); @@ -1196,45 +1430,96 @@ static void windowAggStep( } sqlite3VdbeAddOp3(v, bInverse? OP_AggInverse : OP_AggStep, bInverse, regArg, pWin->regAccum); - sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF); + sqlite3VdbeAppendP4(v, pFunc, P4_FUNCDEF); sqlite3VdbeChangeP5(v, (u8)nArg); if( addrIf ) sqlite3VdbeJumpHere(v, addrIf); } } } +typedef struct WindowCodeArg WindowCodeArg; +typedef struct WindowCsrAndReg WindowCsrAndReg; +struct WindowCsrAndReg { + int csr; + int reg; +}; + +struct WindowCodeArg { + Parse *pParse; + Window *pMWin; + Vdbe *pVdbe; + int regGosub; + int addrGosub; + int regArg; + int eDelete; + + WindowCsrAndReg start; + WindowCsrAndReg current; + WindowCsrAndReg end; +}; + +/* +** Values that may be passed as the second argument to windowCodeOp(). +*/ +#define WINDOW_RETURN_ROW 1 +#define WINDOW_AGGINVERSE 2 +#define WINDOW_AGGSTEP 3 + +/* +** Generate VM code to read the window frames peer values from cursor csr into +** an array of registers starting at reg. +*/ +static void windowReadPeerValues( + WindowCodeArg *p, + int csr, + int reg +){ + Window *pMWin = p->pMWin; + ExprList *pOrderBy = pMWin->pOrderBy; + if( pOrderBy ){ + Vdbe *v = sqlite3GetVdbe(p->pParse); + ExprList *pPart = pMWin->pPartition; + int iColOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0); + int i; + for(i=0; inExpr; i++){ + sqlite3VdbeAddOp3(v, OP_Column, csr, iColOff+i, reg+i); + } + } +} + /* -** Generate VM code to invoke either xValue() (bFinal==0) or xFinalize() -** (bFinal==1) for each window function in the linked list starting at +** Generate VM code to invoke either xValue() (bFin==0) or xFinalize() +** (bFin==1) for each window function in the linked list starting at ** pMWin. Or, for built-in window-functions that do not use the standard ** API, generate the equivalent VM code. */ -static void windowAggFinal(Parse *pParse, Window *pMWin, int bFinal){ +static void windowAggFinal(WindowCodeArg *p, int bFin){ + Parse *pParse = p->pParse; + Window *pMWin = p->pMWin; Vdbe *v = sqlite3GetVdbe(pParse); Window *pWin; for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ - if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX) - && pWin->eStart!=TK_UNBOUNDED + if( pMWin->regStartRowid==0 + && (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX) + && (pWin->eStart!=TK_UNBOUNDED) ){ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult); sqlite3VdbeAddOp1(v, OP_Last, pWin->csrApp); VdbeCoverage(v); sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult); sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2); - if( bFinal ){ - sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp); - } }else if( pWin->regApp ){ + assert( pMWin->regStartRowid==0 ); }else{ - if( bFinal ){ - sqlite3VdbeAddOp2(v, OP_AggFinal, pWin->regAccum, windowArgCount(pWin)); + int nArg = windowArgCount(pWin); + if( bFin ){ + sqlite3VdbeAddOp2(v, OP_AggFinal, pWin->regAccum, nArg); sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF); sqlite3VdbeAddOp2(v, OP_Copy, pWin->regAccum, pWin->regResult); sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum); }else{ - sqlite3VdbeAddOp3(v, OP_AggValue, pWin->regAccum, windowArgCount(pWin), - pWin->regResult); + sqlite3VdbeAddOp3(v, OP_AggValue,pWin->regAccum,nArg,pWin->regResult); sqlite3VdbeAppendP4(v, pWin->pFunc, P4_FUNCDEF); } } @@ -1242,66 +1527,97 @@ static void windowAggFinal(Parse *pParse, Window *pMWin, int bFinal){ } /* -** This function generates VM code to invoke the sub-routine at address -** lblFlushPart once for each partition with the entire partition cached in -** the Window.iEphCsr temp table. +** Generate code to calculate the current values of all window functions in the +** p->pMWin list by doing a full scan of the current window frame. Store the +** results in the Window.regResult registers, ready to return the upper +** layer. */ -static void windowPartitionCache( - Parse *pParse, - Select *p, /* The rewritten SELECT statement */ - WhereInfo *pWInfo, /* WhereInfo to call WhereEnd() on */ - int regFlushPart, /* Register to use with Gosub lblFlushPart */ - int lblFlushPart, /* Subroutine to Gosub to */ - int *pRegSize /* OUT: Register containing partition size */ -){ - Window *pMWin = p->pWin; - Vdbe *v = sqlite3GetVdbe(pParse); - int iSubCsr = p->pSrc->a[0].iCursor; - int nSub = p->pSrc->a[0].pTab->nCol; - int k; - - int reg = pParse->nMem+1; - int regRecord = reg+nSub; - int regRowid = regRecord+1; +static void windowFullScan(WindowCodeArg *p){ + Window *pWin; + Parse *pParse = p->pParse; + Window *pMWin = p->pMWin; + Vdbe *v = p->pVdbe; + + int regCRowid = 0; /* Current rowid value */ + int regCPeer = 0; /* Current peer values */ + int regRowid = 0; /* AggStep rowid value */ + int regPeer = 0; /* AggStep peer values */ + + int nPeer; + int lblNext; + int lblBrk; + int addrNext; + int csr = pMWin->csrApp; + + nPeer = (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0); + + lblNext = sqlite3VdbeMakeLabel(pParse); + lblBrk = sqlite3VdbeMakeLabel(pParse); + + regCRowid = sqlite3GetTempReg(pParse); + regRowid = sqlite3GetTempReg(pParse); + if( nPeer ){ + regCPeer = sqlite3GetTempRange(pParse, nPeer); + regPeer = sqlite3GetTempRange(pParse, nPeer); + } - *pRegSize = regRowid; - pParse->nMem += nSub + 2; + sqlite3VdbeAddOp2(v, OP_Rowid, pMWin->iEphCsr, regCRowid); + windowReadPeerValues(p, pMWin->iEphCsr, regCPeer); - /* Load the column values for the row returned by the sub-select - ** into an array of registers starting at reg. */ - for(k=0; kpNextWin){ + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum); } - sqlite3VdbeAddOp3(v, OP_MakeRecord, reg, nSub, regRecord); - /* Check if this is the start of a new partition. If so, call the - ** flush_partition sub-routine. */ - if( pMWin->pPartition ){ + sqlite3VdbeAddOp3(v, OP_SeekGE, csr, lblBrk, pMWin->regStartRowid); + VdbeCoverage(v); + addrNext = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeAddOp2(v, OP_Rowid, csr, regRowid); + sqlite3VdbeAddOp3(v, OP_Gt, pMWin->regEndRowid, lblBrk, regRowid); + VdbeCoverageNeverNull(v); + + if( pMWin->eExclude==TK_CURRENT ){ + sqlite3VdbeAddOp3(v, OP_Eq, regCRowid, lblNext, regRowid); + VdbeCoverageNeverNull(v); + }else if( pMWin->eExclude!=TK_NO ){ int addr; - ExprList *pPart = pMWin->pPartition; - int nPart = pPart->nExpr; - int regNewPart = reg + pMWin->nBufferCol; - KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0); + int addrEq = 0; + KeyInfo *pKeyInfo = 0; - addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPart, pMWin->regPart,nPart); - sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); - sqlite3VdbeAddOp3(v, OP_Jump, addr+2, addr+4, addr+2); - VdbeCoverageEqNe(v); - sqlite3VdbeAddOp3(v, OP_Copy, regNewPart, pMWin->regPart, nPart-1); - sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart); - VdbeComment((v, "call flush_partition")); + if( pMWin->pOrderBy ){ + pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pMWin->pOrderBy, 0, 0); + } + if( pMWin->eExclude==TK_TIES ){ + addrEq = sqlite3VdbeAddOp3(v, OP_Eq, regCRowid, 0, regRowid); + VdbeCoverageNeverNull(v); + } + if( pKeyInfo ){ + windowReadPeerValues(p, csr, regPeer); + sqlite3VdbeAddOp3(v, OP_Compare, regPeer, regCPeer, nPeer); + sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); + addr = sqlite3VdbeCurrentAddr(v)+1; + sqlite3VdbeAddOp3(v, OP_Jump, addr, lblNext, addr); + VdbeCoverageEqNe(v); + }else{ + sqlite3VdbeAddOp2(v, OP_Goto, 0, lblNext); + } + if( addrEq ) sqlite3VdbeJumpHere(v, addrEq); } - /* Buffer the current row in the ephemeral table. */ - sqlite3VdbeAddOp2(v, OP_NewRowid, pMWin->iEphCsr, regRowid); - sqlite3VdbeAddOp3(v, OP_Insert, pMWin->iEphCsr, regRecord, regRowid); + windowAggStep(pParse, pMWin, csr, 0, p->regArg); - /* End of the input loop */ - sqlite3WhereEnd(pWInfo); + sqlite3VdbeResolveLabel(v, lblNext); + sqlite3VdbeAddOp2(v, OP_Next, csr, addrNext); + VdbeCoverage(v); + sqlite3VdbeJumpHere(v, addrNext-1); + sqlite3VdbeJumpHere(v, addrNext+1); + sqlite3ReleaseTempReg(pParse, regRowid); + sqlite3ReleaseTempReg(pParse, regCRowid); + if( nPeer ){ + sqlite3ReleaseTempRange(pParse, regPeer, nPeer); + sqlite3ReleaseTempRange(pParse, regCPeer, nPeer); + } - /* Invoke "flush_partition" to deal with the final (or only) partition */ - sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart); - VdbeComment((v, "call flush_partition")); + windowAggFinal(p, 1); } /* @@ -1317,110 +1633,74 @@ static void windowPartitionCache( ** lag() ** lead() */ -static void windowReturnOneRow( - Parse *pParse, - Window *pMWin, - int regGosub, - int addrGosub -){ - Vdbe *v = sqlite3GetVdbe(pParse); - Window *pWin; - for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ - FuncDef *pFunc = pWin->pFunc; - if( pFunc->zName==nth_valueName - || pFunc->zName==first_valueName - ){ - int csr = pWin->csrApp; - int lbl = sqlite3VdbeMakeLabel(pParse); - int tmpReg = sqlite3GetTempReg(pParse); - sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult); +static void windowReturnOneRow(WindowCodeArg *p){ + Window *pMWin = p->pMWin; + Vdbe *v = p->pVdbe; - if( pFunc->zName==nth_valueName ){ - sqlite3VdbeAddOp3(v, OP_Column, pMWin->iEphCsr, pWin->iArgCol+1,tmpReg); - windowCheckIntValue(pParse, tmpReg, 2); - }else{ - sqlite3VdbeAddOp2(v, OP_Integer, 1, tmpReg); - } - sqlite3VdbeAddOp3(v, OP_Add, tmpReg, pWin->regApp, tmpReg); - sqlite3VdbeAddOp3(v, OP_Gt, pWin->regApp+1, lbl, tmpReg); - VdbeCoverageNeverNull(v); - sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, 0, tmpReg); - VdbeCoverageNeverTaken(v); - sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult); - sqlite3VdbeResolveLabel(v, lbl); - sqlite3ReleaseTempReg(pParse, tmpReg); - } - else if( pFunc->zName==leadName || pFunc->zName==lagName ){ - int nArg = pWin->pOwner->x.pList->nExpr; - int iEph = pMWin->iEphCsr; - int csr = pWin->csrApp; - int lbl = sqlite3VdbeMakeLabel(pParse); - int tmpReg = sqlite3GetTempReg(pParse); - - if( nArg<3 ){ + if( pMWin->regStartRowid ){ + windowFullScan(p); + }else{ + Parse *pParse = p->pParse; + Window *pWin; + + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + FuncDef *pFunc = pWin->pFunc; + if( pFunc->zName==nth_valueName + || pFunc->zName==first_valueName + ){ + int csr = pWin->csrApp; + int lbl = sqlite3VdbeMakeLabel(pParse); + int tmpReg = sqlite3GetTempReg(pParse); sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult); - }else{ - sqlite3VdbeAddOp3(v, OP_Column, iEph, pWin->iArgCol+2, pWin->regResult); + + if( pFunc->zName==nth_valueName ){ + sqlite3VdbeAddOp3(v, OP_Column,pMWin->iEphCsr,pWin->iArgCol+1,tmpReg); + windowCheckValue(pParse, tmpReg, 2); + }else{ + sqlite3VdbeAddOp2(v, OP_Integer, 1, tmpReg); + } + sqlite3VdbeAddOp3(v, OP_Add, tmpReg, pWin->regApp, tmpReg); + sqlite3VdbeAddOp3(v, OP_Gt, pWin->regApp+1, lbl, tmpReg); + VdbeCoverageNeverNull(v); + sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, 0, tmpReg); + VdbeCoverageNeverTaken(v); + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult); + sqlite3VdbeResolveLabel(v, lbl); + sqlite3ReleaseTempReg(pParse, tmpReg); } - sqlite3VdbeAddOp2(v, OP_Rowid, iEph, tmpReg); - if( nArg<2 ){ - int val = (pFunc->zName==leadName ? 1 : -1); - sqlite3VdbeAddOp2(v, OP_AddImm, tmpReg, val); - }else{ - int op = (pFunc->zName==leadName ? OP_Add : OP_Subtract); - int tmpReg2 = sqlite3GetTempReg(pParse); - sqlite3VdbeAddOp3(v, OP_Column, iEph, pWin->iArgCol+1, tmpReg2); - sqlite3VdbeAddOp3(v, op, tmpReg2, tmpReg, tmpReg); - sqlite3ReleaseTempReg(pParse, tmpReg2); + else if( pFunc->zName==leadName || pFunc->zName==lagName ){ + int nArg = pWin->pOwner->x.pList->nExpr; + int csr = pWin->csrApp; + int lbl = sqlite3VdbeMakeLabel(pParse); + int tmpReg = sqlite3GetTempReg(pParse); + int iEph = pMWin->iEphCsr; + + if( nArg<3 ){ + sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult); + }else{ + sqlite3VdbeAddOp3(v, OP_Column, iEph,pWin->iArgCol+2,pWin->regResult); + } + sqlite3VdbeAddOp2(v, OP_Rowid, iEph, tmpReg); + if( nArg<2 ){ + int val = (pFunc->zName==leadName ? 1 : -1); + sqlite3VdbeAddOp2(v, OP_AddImm, tmpReg, val); + }else{ + int op = (pFunc->zName==leadName ? OP_Add : OP_Subtract); + int tmpReg2 = sqlite3GetTempReg(pParse); + sqlite3VdbeAddOp3(v, OP_Column, iEph, pWin->iArgCol+1, tmpReg2); + sqlite3VdbeAddOp3(v, op, tmpReg2, tmpReg, tmpReg); + sqlite3ReleaseTempReg(pParse, tmpReg2); + } + + sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, lbl, tmpReg); + VdbeCoverage(v); + sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult); + sqlite3VdbeResolveLabel(v, lbl); + sqlite3ReleaseTempReg(pParse, tmpReg); } - - sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, lbl, tmpReg); - VdbeCoverage(v); - sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult); - sqlite3VdbeResolveLabel(v, lbl); - sqlite3ReleaseTempReg(pParse, tmpReg); } } - sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub); -} - -/* -** Invoke the code generated by windowReturnOneRow() and, optionally, the -** xInverse() function for each window function, for one or more rows -** from the Window.iEphCsr temp table. This routine generates VM code -** similar to: -** -** while( regCtr>0 ){ -** regCtr--; -** windowReturnOneRow() -** if( bInverse ){ -** AggInverse -** } -** Next (Window.iEphCsr) -** } -*/ -static void windowReturnRows( - Parse *pParse, - Window *pMWin, /* List of window functions */ - int regCtr, /* Register containing number of rows */ - int regGosub, /* Register for Gosub addrGosub */ - int addrGosub, /* Address of sub-routine for ReturnOneRow */ - int regInvArg, /* Array of registers for xInverse args */ - int regInvSize /* Register containing size of partition */ -){ - int addr; - Vdbe *v = sqlite3GetVdbe(pParse); - windowAggFinal(pParse, pMWin, 0); - addr = sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 ,1); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, 0); - windowReturnOneRow(pParse, pMWin, regGosub, addrGosub); - if( regInvArg ){ - windowAggStep(pParse, pMWin, pMWin->iEphCsr, 1, regInvArg, regInvSize); - } - sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, addr); - VdbeCoverage(v); - sqlite3VdbeJumpHere(v, addr+1); /* The OP_Goto */ + sqlite3VdbeAddOp2(v, OP_Gosub, p->regGosub, p->addrGosub); } /* @@ -1438,17 +1718,17 @@ static int windowInitAccum(Parse *pParse, Window *pMWin){ FuncDef *pFunc = pWin->pFunc; sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regAccum); nArg = MAX(nArg, windowArgCount(pWin)); - if( pFunc->zName==nth_valueName - || pFunc->zName==first_valueName - ){ - sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp); - sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1); - } + if( pMWin->regStartRowid==0 ){ + if( pFunc->zName==nth_valueName || pFunc->zName==first_valueName ){ + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1); + } - if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){ - assert( pWin->eStart!=TK_UNBOUNDED ); - sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp); - sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1); + if( (pFunc->funcFlags & SQLITE_FUNC_MINMAX) && pWin->csrApp ){ + assert( pWin->eStart!=TK_UNBOUNDED ); + sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1); + } } } regArg = pParse->nMem+1; @@ -1456,672 +1736,248 @@ static int windowInitAccum(Parse *pParse, Window *pMWin){ return regArg; } - -/* -** This function does the work of sqlite3WindowCodeStep() for all "ROWS" -** window frame types except for "BETWEEN UNBOUNDED PRECEDING AND CURRENT -** ROW". Pseudo-code for each follows. -** -** ROWS BETWEEN PRECEDING AND FOLLOWING -** -** ... -** if( new partition ){ -** Gosub flush_partition -** } -** Insert (record in eph-table) -** sqlite3WhereEnd() -** Gosub flush_partition -** -** flush_partition: -** Once { -** OpenDup (iEphCsr -> csrStart) -** OpenDup (iEphCsr -> csrEnd) -** } -** regStart = // PRECEDING expression -** regEnd = // FOLLOWING expression -** if( regStart<0 || regEnd<0 ){ error! } -** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done -** Next(csrEnd) // if EOF skip Aggstep -** Aggstep (csrEnd) -** if( (regEnd--)<=0 ){ -** AggFinal (xValue) -** Gosub addrGosub -** Next(csr) // if EOF goto flush_partition_done -** if( (regStart--)<=0 ){ -** AggInverse (csrStart) -** Next(csrStart) -** } -** } -** flush_partition_done: -** ResetSorter (csr) -** Return -** -** ROWS BETWEEN PRECEDING AND CURRENT ROW -** ROWS BETWEEN CURRENT ROW AND FOLLOWING -** ROWS BETWEEN UNBOUNDED PRECEDING AND FOLLOWING -** -** These are similar to the above. For "CURRENT ROW", intialize the -** register to 0. For "UNBOUNDED PRECEDING" to infinity. -** -** ROWS BETWEEN PRECEDING AND UNBOUNDED FOLLOWING -** ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING -** -** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done -** while( 1 ){ -** Next(csrEnd) // Exit while(1) at EOF -** Aggstep (csrEnd) -** } -** while( 1 ){ -** AggFinal (xValue) -** Gosub addrGosub -** Next(csr) // if EOF goto flush_partition_done -** if( (regStart--)<=0 ){ -** AggInverse (csrStart) -** Next(csrStart) -** } -** } -** -** For the "CURRENT ROW AND UNBOUNDED FOLLOWING" case, the final if() -** condition is always true (as if regStart were initialized to 0). -** -** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING -** -** This is the only RANGE case handled by this routine. It modifies the -** second while( 1 ) loop in "ROWS BETWEEN CURRENT ... UNBOUNDED..." to -** be: -** -** while( 1 ){ -** AggFinal (xValue) -** while( 1 ){ -** regPeer++ -** Gosub addrGosub -** Next(csr) // if EOF goto flush_partition_done -** if( new peer ) break; -** } -** while( (regPeer--)>0 ){ -** AggInverse (csrStart) -** Next(csrStart) -** } -** } -** -** ROWS BETWEEN FOLLOWING AND FOLLOWING -** -** regEnd = regEnd - regStart -** Rewind (csr,csrStart,csrEnd) // if EOF goto flush_partition_done -** Aggstep (csrEnd) -** Next(csrEnd) // if EOF fall-through -** if( (regEnd--)<=0 ){ -** if( (regStart--)<=0 ){ -** AggFinal (xValue) -** Gosub addrGosub -** Next(csr) // if EOF goto flush_partition_done -** } -** AggInverse (csrStart) -** Next (csrStart) -** } -** -** ROWS BETWEEN PRECEDING AND PRECEDING -** -** Replace the bit after "Rewind" in the above with: -** -** if( (regEnd--)<=0 ){ -** AggStep (csrEnd) -** Next (csrEnd) -** } -** AggFinal (xValue) -** Gosub addrGosub -** Next(csr) // if EOF goto flush_partition_done -** if( (regStart--)<=0 ){ -** AggInverse (csr2) -** Next (csr2) -** } -** +/* +** Return true if the current frame should be cached in the ephemeral table, +** even if there are no xInverse() calls required. */ -static void windowCodeRowExprStep( - Parse *pParse, - Select *p, - WhereInfo *pWInfo, - int regGosub, - int addrGosub -){ - Window *pMWin = p->pWin; - Vdbe *v = sqlite3GetVdbe(pParse); - int regFlushPart; /* Register for "Gosub flush_partition" */ - int lblFlushPart; /* Label for "Gosub flush_partition" */ - int lblFlushDone; /* Label for "Gosub flush_partition_done" */ - - int regArg; - int addr; - int csrStart = pParse->nTab++; - int csrEnd = pParse->nTab++; - int regStart; /* Value of PRECEDING */ - int regEnd; /* Value of FOLLOWING */ - int addrGoto; - int addrTop; - int addrIfPos1 = 0; - int addrIfPos2 = 0; - int regSize = 0; - - assert( pMWin->eStart==TK_PRECEDING - || pMWin->eStart==TK_CURRENT - || pMWin->eStart==TK_FOLLOWING - || pMWin->eStart==TK_UNBOUNDED - ); - assert( pMWin->eEnd==TK_FOLLOWING - || pMWin->eEnd==TK_CURRENT - || pMWin->eEnd==TK_UNBOUNDED - || pMWin->eEnd==TK_PRECEDING - ); - - /* Allocate register and label for the "flush_partition" sub-routine. */ - regFlushPart = ++pParse->nMem; - lblFlushPart = sqlite3VdbeMakeLabel(pParse); - lblFlushDone = sqlite3VdbeMakeLabel(pParse); - - regStart = ++pParse->nMem; - regEnd = ++pParse->nMem; - - windowPartitionCache(pParse, p, pWInfo, regFlushPart, lblFlushPart, ®Size); - - addrGoto = sqlite3VdbeAddOp0(v, OP_Goto); - - /* Start of "flush_partition" */ - sqlite3VdbeResolveLabel(v, lblFlushPart); - sqlite3VdbeAddOp2(v, OP_Once, 0, sqlite3VdbeCurrentAddr(v)+3); - VdbeCoverage(v); - VdbeComment((v, "Flush_partition subroutine")); - sqlite3VdbeAddOp2(v, OP_OpenDup, csrStart, pMWin->iEphCsr); - sqlite3VdbeAddOp2(v, OP_OpenDup, csrEnd, pMWin->iEphCsr); - - /* If either regStart or regEnd are not non-negative integers, throw - ** an exception. */ - if( pMWin->pStart ){ - sqlite3ExprCode(pParse, pMWin->pStart, regStart); - windowCheckIntValue(pParse, regStart, 0); - } - if( pMWin->pEnd ){ - sqlite3ExprCode(pParse, pMWin->pEnd, regEnd); - windowCheckIntValue(pParse, regEnd, 1); - } - - /* If this is "ROWS FOLLOWING AND ROWS FOLLOWING", do: - ** - ** if( regEndpEnd && pMWin->eStart==TK_FOLLOWING ){ - assert( pMWin->pStart!=0 ); - assert( pMWin->eEnd==TK_FOLLOWING ); - sqlite3VdbeAddOp3(v, OP_Ge, regStart, sqlite3VdbeCurrentAddr(v)+2, regEnd); - VdbeCoverageNeverNull(v); - sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart); - sqlite3VdbeAddOp3(v, OP_Subtract, regStart, regEnd, regEnd); - } - - if( pMWin->pStart && pMWin->eEnd==TK_PRECEDING ){ - assert( pMWin->pEnd!=0 ); - assert( pMWin->eStart==TK_PRECEDING ); - sqlite3VdbeAddOp3(v, OP_Le, regStart, sqlite3VdbeCurrentAddr(v)+3, regEnd); - VdbeCoverageNeverNull(v); - sqlite3VdbeAddOp2(v, OP_Copy, regSize, regStart); - sqlite3VdbeAddOp2(v, OP_Copy, regSize, regEnd); - } - - /* Initialize the accumulator register for each window function to NULL */ - regArg = windowInitAccum(pParse, pMWin); - - sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr, lblFlushDone); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Rewind, csrStart, lblFlushDone); - VdbeCoverageNeverTaken(v); - sqlite3VdbeChangeP5(v, 1); - sqlite3VdbeAddOp2(v, OP_Rewind, csrEnd, lblFlushDone); - VdbeCoverageNeverTaken(v); - sqlite3VdbeChangeP5(v, 1); - - /* Invoke AggStep function for each window function using the row that - ** csrEnd currently points to. Or, if csrEnd is already at EOF, - ** do nothing. */ - addrTop = sqlite3VdbeCurrentAddr(v); - if( pMWin->eEnd==TK_PRECEDING ){ - addrIfPos1 = sqlite3VdbeAddOp3(v, OP_IfPos, regEnd, 0 , 1); - VdbeCoverage(v); - } - sqlite3VdbeAddOp2(v, OP_Next, csrEnd, sqlite3VdbeCurrentAddr(v)+2); - VdbeCoverage(v); - addr = sqlite3VdbeAddOp0(v, OP_Goto); - windowAggStep(pParse, pMWin, csrEnd, 0, regArg, regSize); - if( pMWin->eEnd==TK_UNBOUNDED ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop); - sqlite3VdbeJumpHere(v, addr); - addrTop = sqlite3VdbeCurrentAddr(v); - }else{ - sqlite3VdbeJumpHere(v, addr); - if( pMWin->eEnd==TK_PRECEDING ){ - sqlite3VdbeJumpHere(v, addrIfPos1); - } - } - - if( pMWin->eEnd==TK_FOLLOWING ){ - addrIfPos1 = sqlite3VdbeAddOp3(v, OP_IfPos, regEnd, 0 , 1); - VdbeCoverage(v); - } - if( pMWin->eStart==TK_FOLLOWING ){ - addrIfPos2 = sqlite3VdbeAddOp3(v, OP_IfPos, regStart, 0 , 1); - VdbeCoverage(v); - } - windowAggFinal(pParse, pMWin, 0); - windowReturnOneRow(pParse, pMWin, regGosub, addrGosub); - sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)+2); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, lblFlushDone); - if( pMWin->eStart==TK_FOLLOWING ){ - sqlite3VdbeJumpHere(v, addrIfPos2); - } - - if( pMWin->eStart==TK_CURRENT - || pMWin->eStart==TK_PRECEDING - || pMWin->eStart==TK_FOLLOWING - ){ - int lblSkipInverse = sqlite3VdbeMakeLabel(pParse);; - if( pMWin->eStart==TK_PRECEDING ){ - sqlite3VdbeAddOp3(v, OP_IfPos, regStart, lblSkipInverse, 1); - VdbeCoverage(v); - } - if( pMWin->eStart==TK_FOLLOWING ){ - sqlite3VdbeAddOp2(v, OP_Next, csrStart, sqlite3VdbeCurrentAddr(v)+2); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, lblSkipInverse); - }else{ - sqlite3VdbeAddOp2(v, OP_Next, csrStart, sqlite3VdbeCurrentAddr(v)+1); - VdbeCoverageAlwaysTaken(v); +static int windowCacheFrame(Window *pMWin){ + Window *pWin; + if( pMWin->regStartRowid ) return 1; + for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ + FuncDef *pFunc = pWin->pFunc; + if( (pFunc->zName==nth_valueName) + || (pFunc->zName==first_valueName) + || (pFunc->zName==leadName) + || (pFunc->zName==lagName) + ){ + return 1; } - windowAggStep(pParse, pMWin, csrStart, 1, regArg, regSize); - sqlite3VdbeResolveLabel(v, lblSkipInverse); - } - if( pMWin->eEnd==TK_FOLLOWING ){ - sqlite3VdbeJumpHere(v, addrIfPos1); } - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop); - - /* flush_partition_done: */ - sqlite3VdbeResolveLabel(v, lblFlushDone); - sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr); - sqlite3VdbeAddOp1(v, OP_Return, regFlushPart); - VdbeComment((v, "end flush_partition subroutine")); - - /* Jump to here to skip over flush_partition */ - sqlite3VdbeJumpHere(v, addrGoto); + return 0; } /* -** This function does the work of sqlite3WindowCodeStep() for cases that -** would normally be handled by windowCodeDefaultStep() when there are -** one or more built-in window-functions that require the entire partition -** to be cached in a temp table before any rows can be returned. Additionally. -** "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" is always handled by -** this function. -** -** Pseudo-code corresponding to the VM code generated by this function -** for each type of window follows. -** -** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW -** -** flush_partition: -** Once { -** OpenDup (iEphCsr -> csrLead) -** } -** Integer ctr 0 -** foreach row (csrLead){ -** if( new peer ){ -** AggFinal (xValue) -** for(i=0; i csrLead) -** } -** foreach row (csrLead) { -** AggStep (csrLead) -** } -** foreach row (iEphCsr) { -** Gosub addrGosub -** } -** -** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING -** -** flush_partition: -** Once { -** OpenDup (iEphCsr -> csrLead) -** } -** foreach row (csrLead){ -** AggStep (csrLead) -** } -** Rewind (csrLead) -** Integer ctr 0 -** foreach row (csrLead){ -** if( new peer ){ -** AggFinal (xValue) -** for(i=0; inExpr. This function generates code to compare the two +** arrays of registers using the collation sequences and other comparison +** parameters specified by pOrderBy. +** +** If the two arrays are not equal, the contents of regNew is copied to +** regOld and control falls through. Otherwise, if the contents of the arrays +** are equal, an OP_Goto is executed. The address of the OP_Goto is returned. */ -static void windowCodeCacheStep( - Parse *pParse, - Select *p, - WhereInfo *pWInfo, - int regGosub, - int addrGosub +static void windowIfNewPeer( + Parse *pParse, + ExprList *pOrderBy, + int regNew, /* First in array of new values */ + int regOld, /* First in array of old values */ + int addr /* Jump here */ ){ - Window *pMWin = p->pWin; Vdbe *v = sqlite3GetVdbe(pParse); - int k; - int addr; - ExprList *pPart = pMWin->pPartition; - ExprList *pOrderBy = pMWin->pOrderBy; - int nPeer = pOrderBy ? pOrderBy->nExpr : 0; - int regNewPeer; - - int addrGoto; /* Address of Goto used to jump flush_par.. */ - int addrNext; /* Jump here for next iteration of loop */ - int regFlushPart; - int lblFlushPart; - int csrLead; - int regCtr; - int regArg; /* Register array to martial function args */ - int regSize; - int lblEmpty; - int bReverse = pMWin->pOrderBy && pMWin->eStart==TK_CURRENT - && pMWin->eEnd==TK_UNBOUNDED; - - assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT) - || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED) - || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT) - || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED) - ); - - lblEmpty = sqlite3VdbeMakeLabel(pParse); - regNewPeer = pParse->nMem+1; - pParse->nMem += nPeer; - - /* Allocate register and label for the "flush_partition" sub-routine. */ - regFlushPart = ++pParse->nMem; - lblFlushPart = sqlite3VdbeMakeLabel(pParse); - - csrLead = pParse->nTab++; - regCtr = ++pParse->nMem; - - windowPartitionCache(pParse, p, pWInfo, regFlushPart, lblFlushPart, ®Size); - addrGoto = sqlite3VdbeAddOp0(v, OP_Goto); - - /* Start of "flush_partition" */ - sqlite3VdbeResolveLabel(v, lblFlushPart); - sqlite3VdbeAddOp2(v, OP_Once, 0, sqlite3VdbeCurrentAddr(v)+2); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_OpenDup, csrLead, pMWin->iEphCsr); - - /* Initialize the accumulator register for each window function to NULL */ - regArg = windowInitAccum(pParse, pMWin); - - sqlite3VdbeAddOp2(v, OP_Integer, 0, regCtr); - sqlite3VdbeAddOp2(v, OP_Rewind, csrLead, lblEmpty); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr, lblEmpty); - VdbeCoverageNeverTaken(v); - - if( bReverse ){ - int addr2 = sqlite3VdbeCurrentAddr(v); - windowAggStep(pParse, pMWin, csrLead, 0, regArg, regSize); - sqlite3VdbeAddOp2(v, OP_Next, csrLead, addr2); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Rewind, csrLead, lblEmpty); - VdbeCoverageNeverTaken(v); - } - addrNext = sqlite3VdbeCurrentAddr(v); - - if( pOrderBy && (pMWin->eEnd==TK_CURRENT || pMWin->eStart==TK_CURRENT) ){ - int bCurrent = (pMWin->eStart==TK_CURRENT); - int addrJump = 0; /* Address of OP_Jump below */ - if( pMWin->eType==TK_RANGE ){ - int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0); - int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0); - KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0); - for(k=0; knExpr; + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0); + sqlite3VdbeAddOp3(v, OP_Compare, regOld, regNew, nVal); + sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); + sqlite3VdbeAddOp3(v, OP_Jump, + sqlite3VdbeCurrentAddr(v)+1, addr, sqlite3VdbeCurrentAddr(v)+1 ); - if( addrJump ) sqlite3VdbeJumpHere(v, addrJump); - } - - if( bReverse==0 ){ - windowAggStep(pParse, pMWin, csrLead, 0, regArg, regSize); + VdbeCoverageEqNe(v); + sqlite3VdbeAddOp3(v, OP_Copy, regNew, regOld, nVal-1); + }else{ + sqlite3VdbeAddOp2(v, OP_Goto, 0, addr); } - sqlite3VdbeAddOp2(v, OP_AddImm, regCtr, 1); - sqlite3VdbeAddOp2(v, OP_Next, csrLead, addrNext); - VdbeCoverage(v); - - windowReturnRows(pParse, pMWin, regCtr, regGosub, addrGosub, 0, 0); - - sqlite3VdbeResolveLabel(v, lblEmpty); - sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr); - sqlite3VdbeAddOp1(v, OP_Return, regFlushPart); - - /* Jump to here to skip over flush_partition */ - sqlite3VdbeJumpHere(v, addrGoto); } - /* -** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW -** -** ... -** if( new partition ){ -** AggFinal (xFinalize) -** Gosub addrGosub -** ResetSorter eph-table -** } -** else if( new peer ){ -** AggFinal (xValue) -** Gosub addrGosub -** ResetSorter eph-table -** } -** AggStep -** Insert (record into eph-table) -** sqlite3WhereEnd() -** AggFinal (xFinalize) -** Gosub addrGosub -** -** RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING -** -** As above, except take no action for a "new peer". Invoke -** the sub-routine once only for each partition. +** This function is called as part of generating VM programs for RANGE +** offset PRECEDING/FOLLOWING frame boundaries. Assuming "ASC" order for +** the ORDER BY term in the window, it generates code equivalent to: ** -** RANGE BETWEEN CURRENT ROW AND CURRENT ROW +** if( csr1.peerVal + regVal >= csr2.peerVal ) goto lbl; ** -** As above, except that the "new peer" condition is handled in the -** same way as "new partition" (so there is no "else if" block). -** -** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW -** -** As above, except assume every row is a "new peer". +** A special type of arithmetic is used such that if csr.peerVal is not +** a numeric type (real or integer), then the result of the addition is +** a copy of csr1.peerVal. */ -static void windowCodeDefaultStep( - Parse *pParse, - Select *p, - WhereInfo *pWInfo, - int regGosub, - int addrGosub +static void windowCodeRangeTest( + WindowCodeArg *p, + int op, /* OP_Ge or OP_Gt */ + int csr1, + int regVal, + int csr2, + int lbl ){ - Window *pMWin = p->pWin; + Parse *pParse = p->pParse; Vdbe *v = sqlite3GetVdbe(pParse); - int k; - int iSubCsr = p->pSrc->a[0].iCursor; - int nSub = p->pSrc->a[0].pTab->nCol; - int reg = pParse->nMem+1; - int regRecord = reg+nSub; - int regRowid = regRecord+1; - int addr; - ExprList *pPart = pMWin->pPartition; - ExprList *pOrderBy = pMWin->pOrderBy; - - assert( pMWin->eType==TK_RANGE - || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT) - ); - - assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT) - || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED) - || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT) - || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED && !pOrderBy) - ); - - if( pMWin->eEnd==TK_UNBOUNDED ){ - pOrderBy = 0; + int reg1 = sqlite3GetTempReg(pParse); + int reg2 = sqlite3GetTempReg(pParse); + int arith = OP_Add; + int addrGe; + + int regString = ++pParse->nMem; + + assert( op==OP_Ge || op==OP_Gt || op==OP_Le ); + assert( p->pMWin->pOrderBy && p->pMWin->pOrderBy->nExpr==1 ); + if( p->pMWin->pOrderBy->a[0].sortOrder ){ + switch( op ){ + case OP_Ge: op = OP_Le; break; + case OP_Gt: op = OP_Lt; break; + default: assert( op==OP_Le ); op = OP_Ge; break; + } + arith = OP_Subtract; } - pParse->nMem += nSub + 2; + windowReadPeerValues(p, csr1, reg1); + windowReadPeerValues(p, csr2, reg2); - /* Load the individual column values of the row returned by - ** the sub-select into an array of registers. */ - for(k=0; knExpr : 0); - int addrGoto = 0; - int addrJump = 0; - int nPeer = (pOrderBy ? pOrderBy->nExpr : 0); +/* +** Helper function for sqlite3WindowCodeStep(). Each call to this function +** generates VM code for a single RETURN_ROW, AGGSTEP or AGGINVERSE +** operation. Refer to the header comment for sqlite3WindowCodeStep() for +** details. +*/ +static int windowCodeOp( + WindowCodeArg *p, /* Context object */ + int op, /* WINDOW_RETURN_ROW, AGGSTEP or AGGINVERSE */ + int regCountdown, /* Register for OP_IfPos countdown */ + int jumpOnEof /* Jump here if stepped cursor reaches EOF */ +){ + int csr, reg; + Parse *pParse = p->pParse; + Window *pMWin = p->pMWin; + int ret = 0; + Vdbe *v = p->pVdbe; + int addrIf = 0; + int addrContinue = 0; + int addrGoto = 0; + int bPeer = (pMWin->eFrmType!=TK_ROWS); + + int lblDone = sqlite3VdbeMakeLabel(pParse); + int addrNextRange = 0; + + /* Special case - WINDOW_AGGINVERSE is always a no-op if the frame + ** starts with UNBOUNDED PRECEDING. */ + if( op==WINDOW_AGGINVERSE && pMWin->eStart==TK_UNBOUNDED ){ + assert( regCountdown==0 && jumpOnEof==0 ); + return 0; + } - if( pPart ){ - int regNewPart = reg + pMWin->nBufferCol; - KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0); - addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPart, pMWin->regPart,nPart); - sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); - addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2); - VdbeCoverageEqNe(v); - windowAggFinal(pParse, pMWin, 1); - if( pOrderBy ){ - addrGoto = sqlite3VdbeAddOp0(v, OP_Goto); + if( regCountdown>0 ){ + if( pMWin->eFrmType==TK_RANGE ){ + addrNextRange = sqlite3VdbeCurrentAddr(v); + assert( op==WINDOW_AGGINVERSE || op==WINDOW_AGGSTEP ); + if( op==WINDOW_AGGINVERSE ){ + if( pMWin->eStart==TK_FOLLOWING ){ + windowCodeRangeTest( + p, OP_Le, p->current.csr, regCountdown, p->start.csr, lblDone + ); + }else{ + windowCodeRangeTest( + p, OP_Ge, p->start.csr, regCountdown, p->current.csr, lblDone + ); + } + }else{ + windowCodeRangeTest( + p, OP_Gt, p->end.csr, regCountdown, p->current.csr, lblDone + ); } + }else{ + addrIf = sqlite3VdbeAddOp3(v, OP_IfPos, regCountdown, 0, 1); + VdbeCoverage(v); } + } - if( pOrderBy ){ - int regNewPeer = reg + pMWin->nBufferCol + nPart; - int regPeer = pMWin->regPart + nPart; + if( op==WINDOW_RETURN_ROW && pMWin->regStartRowid==0 ){ + windowAggFinal(p, 0); + } + addrContinue = sqlite3VdbeCurrentAddr(v); + switch( op ){ + case WINDOW_RETURN_ROW: + csr = p->current.csr; + reg = p->current.reg; + windowReturnOneRow(p); + break; - if( addrJump ) sqlite3VdbeJumpHere(v, addrJump); - if( pMWin->eType==TK_RANGE ){ - KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0); - addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer); - sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); - addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2); - VdbeCoverage(v); + case WINDOW_AGGINVERSE: + csr = p->start.csr; + reg = p->start.reg; + if( pMWin->regStartRowid ){ + assert( pMWin->regEndRowid ); + sqlite3VdbeAddOp2(v, OP_AddImm, pMWin->regStartRowid, 1); }else{ - addrJump = 0; + windowAggStep(pParse, pMWin, csr, 1, p->regArg); } - windowAggFinal(pParse, pMWin, pMWin->eStart==TK_CURRENT); - if( addrGoto ) sqlite3VdbeJumpHere(v, addrGoto); - } - - sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr,sqlite3VdbeCurrentAddr(v)+3); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub); - sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-1); - VdbeCoverage(v); - - sqlite3VdbeAddOp1(v, OP_ResetSorter, pMWin->iEphCsr); - sqlite3VdbeAddOp3( - v, OP_Copy, reg+pMWin->nBufferCol, pMWin->regPart, nPart+nPeer-1 - ); + break; - if( addrJump ) sqlite3VdbeJumpHere(v, addrJump); + default: + assert( op==WINDOW_AGGSTEP ); + csr = p->end.csr; + reg = p->end.reg; + if( pMWin->regStartRowid ){ + assert( pMWin->regEndRowid ); + sqlite3VdbeAddOp2(v, OP_AddImm, pMWin->regEndRowid, 1); + }else{ + windowAggStep(pParse, pMWin, csr, 0, p->regArg); + } + break; } - /* Invoke step function for window functions */ - windowAggStep(pParse, pMWin, -1, 0, reg, 0); + if( op==p->eDelete ){ + sqlite3VdbeAddOp1(v, OP_Delete, csr); + sqlite3VdbeChangeP5(v, OPFLAG_SAVEPOSITION); + } - /* Buffer the current row in the ephemeral table. */ - if( pMWin->nBufferCol>0 ){ - sqlite3VdbeAddOp3(v, OP_MakeRecord, reg, pMWin->nBufferCol, regRecord); + if( jumpOnEof ){ + sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+2); + VdbeCoverage(v); + ret = sqlite3VdbeAddOp0(v, OP_Goto); }else{ - sqlite3VdbeAddOp2(v, OP_Blob, 0, regRecord); - sqlite3VdbeAppendP4(v, (void*)"", 0); + sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+1+bPeer); + VdbeCoverage(v); + if( bPeer ){ + addrGoto = sqlite3VdbeAddOp0(v, OP_Goto); + } } - sqlite3VdbeAddOp2(v, OP_NewRowid, pMWin->iEphCsr, regRowid); - sqlite3VdbeAddOp3(v, OP_Insert, pMWin->iEphCsr, regRecord, regRowid); - /* End the database scan loop. */ - sqlite3WhereEnd(pWInfo); + if( bPeer ){ + int nReg = (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0); + int regTmp = (nReg ? sqlite3GetTempRange(pParse, nReg) : 0); + windowReadPeerValues(p, csr, regTmp); + windowIfNewPeer(pParse, pMWin->pOrderBy, regTmp, reg, addrContinue); + sqlite3ReleaseTempRange(pParse, regTmp, nReg); + } - windowAggFinal(pParse, pMWin, 1); - sqlite3VdbeAddOp2(v, OP_Rewind, pMWin->iEphCsr,sqlite3VdbeCurrentAddr(v)+3); - VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub); - sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-1); - VdbeCoverage(v); + if( addrNextRange ){ + sqlite3VdbeAddOp2(v, OP_Goto, 0, addrNextRange); + } + sqlite3VdbeResolveLabel(v, lblDone); + if( addrGoto ) sqlite3VdbeJumpHere(v, addrGoto); + if( addrIf ) sqlite3VdbeJumpHere(v, addrIf); + return ret; } + /* ** Allocate and return a duplicate of the Window object indicated by the ** third argument. Set the Window.pOwner field of the new object to @@ -2137,9 +1993,10 @@ Window *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window *p){ pNew->pFunc = p->pFunc; pNew->pPartition = sqlite3ExprListDup(db, p->pPartition, 0); pNew->pOrderBy = sqlite3ExprListDup(db, p->pOrderBy, 0); - pNew->eType = p->eType; + pNew->eFrmType = p->eFrmType; pNew->eEnd = p->eEnd; pNew->eStart = p->eStart; + pNew->eExclude = p->eExclude; pNew->pStart = sqlite3ExprDup(db, p->pStart, 0); pNew->pEnd = sqlite3ExprDup(db, p->pEnd, 0); pNew->pOwner = pOwner; @@ -2166,12 +2023,360 @@ Window *sqlite3WindowListDup(sqlite3 *db, Window *p){ return pRet; } +/* +** Return true if it can be determined at compile time that expression +** pExpr evaluates to a value that, when cast to an integer, is greater +** than zero. False otherwise. +** +** If an OOM error occurs, this function sets the Parse.db.mallocFailed +** flag and returns zero. +*/ +static int windowExprGtZero(Parse *pParse, Expr *pExpr){ + int ret = 0; + sqlite3 *db = pParse->db; + sqlite3_value *pVal = 0; + sqlite3ValueFromExpr(db, pExpr, db->enc, SQLITE_AFF_NUMERIC, &pVal); + if( pVal && sqlite3_value_int(pVal)>0 ){ + ret = 1; + } + sqlite3ValueFree(pVal); + return ret; +} + /* ** sqlite3WhereBegin() has already been called for the SELECT statement ** passed as the second argument when this function is invoked. It generates -** code to populate the Window.regResult register for each window function and -** invoke the sub-routine at instruction addrGosub once for each row. -** This function calls sqlite3WhereEnd() before returning. +** code to populate the Window.regResult register for each window function +** and invoke the sub-routine at instruction addrGosub once for each row. +** sqlite3WhereEnd() is always called before returning. +** +** This function handles several different types of window frames, which +** require slightly different processing. The following pseudo code is +** used to implement window frames of the form: +** +** ROWS BETWEEN PRECEDING AND FOLLOWING +** +** Other window frame types use variants of the following: +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** +** if( first row of partition ){ +** // Rewind three cursors, all open on the eph table. +** Rewind(csrEnd); +** Rewind(csrStart); +** Rewind(csrCurrent); +** +** regEnd = // FOLLOWING expression +** regStart = // PRECEDING expression +** }else{ +** // First time this branch is taken, the eph table contains two +** // rows. The first row in the partition, which all three cursors +** // currently point to, and the following row. +** AGGSTEP +** if( (regEnd--)<=0 ){ +** RETURN_ROW +** if( (regStart--)<=0 ){ +** AGGINVERSE +** } +** } +** } +** } +** flush: +** AGGSTEP +** while( 1 ){ +** RETURN ROW +** if( csrCurrent is EOF ) break; +** if( (regStart--)<=0 ){ +** AggInverse(csrStart) +** Next(csrStart) +** } +** } +** +** The pseudo-code above uses the following shorthand: +** +** AGGSTEP: invoke the aggregate xStep() function for each window function +** with arguments read from the current row of cursor csrEnd, then +** step cursor csrEnd forward one row (i.e. sqlite3BtreeNext()). +** +** RETURN_ROW: return a row to the caller based on the contents of the +** current row of csrCurrent and the current state of all +** aggregates. Then step cursor csrCurrent forward one row. +** +** AGGINVERSE: invoke the aggregate xInverse() function for each window +** functions with arguments read from the current row of cursor +** csrStart. Then step csrStart forward one row. +** +** There are two other ROWS window frames that are handled significantly +** differently from the above - "BETWEEN PRECEDING AND PRECEDING" +** and "BETWEEN FOLLOWING AND FOLLOWING". These are special +** cases because they change the order in which the three cursors (csrStart, +** csrCurrent and csrEnd) iterate through the ephemeral table. Cases that +** use UNBOUNDED or CURRENT ROW are much simpler variations on one of these +** three. +** +** ROWS BETWEEN PRECEDING AND PRECEDING +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regEnd = +** regStart = +** }else{ +** if( (regEnd--)<=0 ){ +** AGGSTEP +** } +** RETURN_ROW +** if( (regStart--)<=0 ){ +** AGGINVERSE +** } +** } +** } +** flush: +** if( (regEnd--)<=0 ){ +** AGGSTEP +** } +** RETURN_ROW +** +** +** ROWS BETWEEN FOLLOWING AND FOLLOWING +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regEnd = +** regStart = regEnd - +** }else{ +** AGGSTEP +** if( (regEnd--)<=0 ){ +** RETURN_ROW +** } +** if( (regStart--)<=0 ){ +** AGGINVERSE +** } +** } +** } +** flush: +** AGGSTEP +** while( 1 ){ +** if( (regEnd--)<=0 ){ +** RETURN_ROW +** if( eof ) break; +** } +** if( (regStart--)<=0 ){ +** AGGINVERSE +** if( eof ) break +** } +** } +** while( !eof csrCurrent ){ +** RETURN_ROW +** } +** +** For the most part, the patterns above are adapted to support UNBOUNDED by +** assuming that it is equivalent to "infinity PRECEDING/FOLLOWING" and +** CURRENT ROW by assuming that it is equivilent to "0 PRECEDING/FOLLOWING". +** This is optimized of course - branches that will never be taken and +** conditions that are always true are omitted from the VM code. The only +** exceptional case is: +** +** ROWS BETWEEN FOLLOWING AND UNBOUNDED FOLLOWING +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regStart = +** }else{ +** AGGSTEP +** } +** } +** flush: +** AGGSTEP +** while( 1 ){ +** if( (regStart--)<=0 ){ +** AGGINVERSE +** if( eof ) break +** } +** RETURN_ROW +** } +** while( !eof csrCurrent ){ +** RETURN_ROW +** } +** +** Also requiring special handling are the cases: +** +** ROWS BETWEEN PRECEDING AND PRECEDING +** ROWS BETWEEN FOLLOWING AND FOLLOWING +** +** when (expr1 < expr2). This is detected at runtime, not by this function. +** To handle this case, the pseudo-code programs depicted above are modified +** slightly to be: +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regEnd = +** regStart = +** if( regEnd < regStart ){ +** RETURN_ROW +** delete eph table contents +** continue +** } +** ... +** +** The new "continue" statement in the above jumps to the next iteration +** of the outer loop - the one started by sqlite3WhereBegin(). +** +** The various GROUPS cases are implemented using the same patterns as +** ROWS. The VM code is modified slightly so that: +** +** 1. The else branch in the main loop is only taken if the row just +** added to the ephemeral table is the start of a new group. In +** other words, it becomes: +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regEnd = +** regStart = +** }else if( new group ){ +** ... +** } +** } +** +** 2. Instead of processing a single row, each RETURN_ROW, AGGSTEP or +** AGGINVERSE step processes the current row of the relevant cursor and +** all subsequent rows belonging to the same group. +** +** RANGE window frames are a little different again. As for GROUPS, the +** main loop runs once per group only. And RETURN_ROW, AGGSTEP and AGGINVERSE +** deal in groups instead of rows. As for ROWS and GROUPS, there are three +** basic cases: +** +** RANGE BETWEEN PRECEDING AND FOLLOWING +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regEnd = +** regStart = +** }else{ +** AGGSTEP +** while( (csrCurrent.key + regEnd) < csrEnd.key ){ +** RETURN_ROW +** while( csrStart.key + regStart) < csrCurrent.key ){ +** AGGINVERSE +** } +** } +** } +** } +** flush: +** AGGSTEP +** while( 1 ){ +** RETURN ROW +** if( csrCurrent is EOF ) break; +** while( csrStart.key + regStart) < csrCurrent.key ){ +** AGGINVERSE +** } +** } +** } +** +** In the above notation, "csr.key" means the current value of the ORDER BY +** expression (there is only ever 1 for a RANGE that uses an FOLLOWING +** or PRECEDING AND PRECEDING +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regEnd = +** regStart = +** }else{ +** if( (csrEnd.key + regEnd) <= csrCurrent.key ){ +** AGGSTEP +** } +** while( (csrStart.key + regStart) < csrCurrent.key ){ +** AGGINVERSE +** } +** RETURN_ROW +** } +** } +** flush: +** while( (csrEnd.key + regEnd) <= csrCurrent.key ){ +** AGGSTEP +** } +** while( (csrStart.key + regStart) < csrCurrent.key ){ +** AGGINVERSE +** } +** RETURN_ROW +** +** RANGE BETWEEN FOLLOWING AND FOLLOWING +** +** ... loop started by sqlite3WhereBegin() ... +** if( new partition ){ +** Gosub flush +** } +** Insert new row into eph table. +** if( first row of partition ){ +** Rewind(csrEnd) ; Rewind(csrStart) ; Rewind(csrCurrent) +** regEnd = +** regStart = +** }else{ +** AGGSTEP +** while( (csrCurrent.key + regEnd) < csrEnd.key ){ +** while( (csrCurrent.key + regStart) > csrStart.key ){ +** AGGINVERSE +** } +** RETURN_ROW +** } +** } +** } +** flush: +** AGGSTEP +** while( 1 ){ +** while( (csrCurrent.key + regStart) > csrStart.key ){ +** AGGINVERSE +** if( eof ) break "while( 1 )" loop. +** } +** RETURN_ROW +** } +** while( !eof csrCurrent ){ +** RETURN_ROW +** } +** +** The text above leaves out many details. Refer to the code and comments +** below for a more complete picture. */ void sqlite3WindowCodeStep( Parse *pParse, /* Parse context */ @@ -2181,75 +2386,321 @@ void sqlite3WindowCodeStep( int addrGosub /* OP_Gosub here to return each row */ ){ Window *pMWin = p->pWin; + ExprList *pOrderBy = pMWin->pOrderBy; + Vdbe *v = sqlite3GetVdbe(pParse); + int csrWrite; /* Cursor used to write to eph. table */ + int csrInput = p->pSrc->a[0].iCursor; /* Cursor of sub-select */ + int nInput = p->pSrc->a[0].pTab->nCol; /* Number of cols returned by sub */ + int iInput; /* To iterate through sub cols */ + int addrNe; /* Address of OP_Ne */ + int addrGosubFlush = 0; /* Address of OP_Gosub to flush: */ + int addrInteger = 0; /* Address of OP_Integer */ + int addrEmpty; /* Address of OP_Rewind in flush: */ + int regStart = 0; /* Value of PRECEDING */ + int regEnd = 0; /* Value of FOLLOWING */ + int regNew; /* Array of registers holding new input row */ + int regRecord; /* regNew array in record form */ + int regRowid; /* Rowid for regRecord in eph table */ + int regNewPeer = 0; /* Peer values for new row (part of regNew) */ + int regPeer = 0; /* Peer values for current row */ + int regFlushPart = 0; /* Register for "Gosub flush_partition" */ + WindowCodeArg s; /* Context object for sub-routines */ + int lblWhereEnd; /* Label just before sqlite3WhereEnd() code */ + + assert( pMWin->eStart==TK_PRECEDING || pMWin->eStart==TK_CURRENT + || pMWin->eStart==TK_FOLLOWING || pMWin->eStart==TK_UNBOUNDED + ); + assert( pMWin->eEnd==TK_FOLLOWING || pMWin->eEnd==TK_CURRENT + || pMWin->eEnd==TK_UNBOUNDED || pMWin->eEnd==TK_PRECEDING + ); + assert( pMWin->eExclude==0 || pMWin->eExclude==TK_CURRENT + || pMWin->eExclude==TK_GROUP || pMWin->eExclude==TK_TIES + || pMWin->eExclude==TK_NO + ); - /* There are three different functions that may be used to do the work - ** of this one, depending on the window frame and the specific built-in - ** window functions used (if any). - ** - ** windowCodeRowExprStep() handles all "ROWS" window frames, except for: - ** - ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW - ** - ** The exception is because windowCodeRowExprStep() implements all window - ** frame types by caching the entire partition in a temp table, and - ** "ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW" is easy enough to - ** implement without such a cache. - ** - ** windowCodeCacheStep() is used for: - ** - ** RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING - ** - ** It is also used for anything not handled by windowCodeRowExprStep() - ** that invokes a built-in window function that requires the entire - ** partition to be cached in a temp table before any rows are returned - ** (e.g. nth_value() or percent_rank()). - ** - ** Finally, assuming there is no built-in window function that requires - ** the partition to be cached, windowCodeDefaultStep() is used for: - ** - ** RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW - ** RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING - ** RANGE BETWEEN CURRENT ROW AND CURRENT ROW - ** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW - ** - ** windowCodeDefaultStep() is the only one of the three functions that - ** does not cache each partition in a temp table before beginning to - ** return rows. - */ - if( pMWin->eType==TK_ROWS - && (pMWin->eStart!=TK_UNBOUNDED||pMWin->eEnd!=TK_CURRENT||!pMWin->pOrderBy) - ){ - VdbeModuleComment((pParse->pVdbe, "Begin RowExprStep()")); - windowCodeRowExprStep(pParse, p, pWInfo, regGosub, addrGosub); - }else{ - Window *pWin; - int bCache = 0; /* True to use CacheStep() */ + lblWhereEnd = sqlite3VdbeMakeLabel(pParse); + + /* Fill in the context object */ + memset(&s, 0, sizeof(WindowCodeArg)); + s.pParse = pParse; + s.pMWin = pMWin; + s.pVdbe = v; + s.regGosub = regGosub; + s.addrGosub = addrGosub; + s.current.csr = pMWin->iEphCsr; + csrWrite = s.current.csr+1; + s.start.csr = s.current.csr+2; + s.end.csr = s.current.csr+3; + + /* Figure out when rows may be deleted from the ephemeral table. There + ** are four options - they may never be deleted (eDelete==0), they may + ** be deleted as soon as they are no longer part of the window frame + ** (eDelete==WINDOW_AGGINVERSE), they may be deleted as after the row + ** has been returned to the caller (WINDOW_RETURN_ROW), or they may + ** be deleted after they enter the frame (WINDOW_AGGSTEP). */ + switch( pMWin->eStart ){ + case TK_FOLLOWING: + if( pMWin->eFrmType!=TK_RANGE + && windowExprGtZero(pParse, pMWin->pStart) + ){ + s.eDelete = WINDOW_RETURN_ROW; + } + break; + case TK_UNBOUNDED: + if( windowCacheFrame(pMWin)==0 ){ + if( pMWin->eEnd==TK_PRECEDING ){ + if( pMWin->eFrmType!=TK_RANGE + && windowExprGtZero(pParse, pMWin->pEnd) + ){ + s.eDelete = WINDOW_AGGSTEP; + } + }else{ + s.eDelete = WINDOW_RETURN_ROW; + } + } + break; + default: + s.eDelete = WINDOW_AGGINVERSE; + break; + } - if( pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_UNBOUNDED ){ - bCache = 1; - }else{ - for(pWin=pMWin; pWin; pWin=pWin->pNextWin){ - FuncDef *pFunc = pWin->pFunc; - if( (pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE) - || (pFunc->zName==nth_valueName) - || (pFunc->zName==first_valueName) - || (pFunc->zName==leadName) - || (pFunc->zName==lagName) - ){ - bCache = 1; - break; + /* Allocate registers for the array of values from the sub-query, the + ** samve values in record form, and the rowid used to insert said record + ** into the ephemeral table. */ + regNew = pParse->nMem+1; + pParse->nMem += nInput; + regRecord = ++pParse->nMem; + regRowid = ++pParse->nMem; + + /* If the window frame contains an " PRECEDING" or " FOLLOWING" + ** clause, allocate registers to store the results of evaluating each + ** . */ + if( pMWin->eStart==TK_PRECEDING || pMWin->eStart==TK_FOLLOWING ){ + regStart = ++pParse->nMem; + } + if( pMWin->eEnd==TK_PRECEDING || pMWin->eEnd==TK_FOLLOWING ){ + regEnd = ++pParse->nMem; + } + + /* If this is not a "ROWS BETWEEN ..." frame, then allocate arrays of + ** registers to store copies of the ORDER BY expressions (peer values) + ** for the main loop, and for each cursor (start, current and end). */ + if( pMWin->eFrmType!=TK_ROWS ){ + int nPeer = (pOrderBy ? pOrderBy->nExpr : 0); + regNewPeer = regNew + pMWin->nBufferCol; + if( pMWin->pPartition ) regNewPeer += pMWin->pPartition->nExpr; + regPeer = pParse->nMem+1; pParse->nMem += nPeer; + s.start.reg = pParse->nMem+1; pParse->nMem += nPeer; + s.current.reg = pParse->nMem+1; pParse->nMem += nPeer; + s.end.reg = pParse->nMem+1; pParse->nMem += nPeer; + } + + /* Load the column values for the row returned by the sub-select + ** into an array of registers starting at regNew. Assemble them into + ** a record in register regRecord. */ + for(iInput=0; iInputpPartition ){ + int addr; + ExprList *pPart = pMWin->pPartition; + int nPart = pPart->nExpr; + int regNewPart = regNew + pMWin->nBufferCol; + KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pPart, 0, 0); + + regFlushPart = ++pParse->nMem; + addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPart, pMWin->regPart, nPart); + sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO); + sqlite3VdbeAddOp3(v, OP_Jump, addr+2, addr+4, addr+2); + VdbeCoverageEqNe(v); + addrGosubFlush = sqlite3VdbeAddOp1(v, OP_Gosub, regFlushPart); + VdbeComment((v, "call flush_partition")); + sqlite3VdbeAddOp3(v, OP_Copy, regNewPart, pMWin->regPart, nPart-1); + } + + /* Insert the new row into the ephemeral table */ + sqlite3VdbeAddOp2(v, OP_NewRowid, csrWrite, regRowid); + sqlite3VdbeAddOp3(v, OP_Insert, csrWrite, regRecord, regRowid); + addrNe = sqlite3VdbeAddOp3(v, OP_Ne, pMWin->regOne, 0, regRowid); + VdbeCoverageNeverNull(v); + + /* This block is run for the first row of each partition */ + s.regArg = windowInitAccum(pParse, pMWin); + + if( regStart ){ + sqlite3ExprCode(pParse, pMWin->pStart, regStart); + windowCheckValue(pParse, regStart, 0 + (pMWin->eFrmType==TK_RANGE ? 3 : 0)); + } + if( regEnd ){ + sqlite3ExprCode(pParse, pMWin->pEnd, regEnd); + windowCheckValue(pParse, regEnd, 1 + (pMWin->eFrmType==TK_RANGE ? 3 : 0)); + } + + if( pMWin->eStart==pMWin->eEnd && regStart ){ + int op = ((pMWin->eStart==TK_FOLLOWING) ? OP_Ge : OP_Le); + int addrGe = sqlite3VdbeAddOp3(v, op, regStart, 0, regEnd); + VdbeCoverageNeverNullIf(v, op==OP_Ge); /* NeverNull because bound */ + VdbeCoverageNeverNullIf(v, op==OP_Le); /* values previously checked */ + windowAggFinal(&s, 0); + sqlite3VdbeAddOp2(v, OP_Rewind, s.current.csr, 1); + VdbeCoverageNeverTaken(v); + windowReturnOneRow(&s); + sqlite3VdbeAddOp1(v, OP_ResetSorter, s.current.csr); + sqlite3VdbeAddOp2(v, OP_Goto, 0, lblWhereEnd); + sqlite3VdbeJumpHere(v, addrGe); + } + if( pMWin->eStart==TK_FOLLOWING && pMWin->eFrmType!=TK_RANGE && regEnd ){ + assert( pMWin->eEnd==TK_FOLLOWING ); + sqlite3VdbeAddOp3(v, OP_Subtract, regStart, regEnd, regStart); + } + + if( pMWin->eStart!=TK_UNBOUNDED ){ + sqlite3VdbeAddOp2(v, OP_Rewind, s.start.csr, 1); + VdbeCoverageNeverTaken(v); + } + sqlite3VdbeAddOp2(v, OP_Rewind, s.current.csr, 1); + VdbeCoverageNeverTaken(v); + sqlite3VdbeAddOp2(v, OP_Rewind, s.end.csr, 1); + VdbeCoverageNeverTaken(v); + if( regPeer && pOrderBy ){ + sqlite3VdbeAddOp3(v, OP_Copy, regNewPeer, regPeer, pOrderBy->nExpr-1); + sqlite3VdbeAddOp3(v, OP_Copy, regPeer, s.start.reg, pOrderBy->nExpr-1); + sqlite3VdbeAddOp3(v, OP_Copy, regPeer, s.current.reg, pOrderBy->nExpr-1); + sqlite3VdbeAddOp3(v, OP_Copy, regPeer, s.end.reg, pOrderBy->nExpr-1); + } + + sqlite3VdbeAddOp2(v, OP_Goto, 0, lblWhereEnd); + + sqlite3VdbeJumpHere(v, addrNe); + + /* Beginning of the block executed for the second and subsequent rows. */ + if( regPeer ){ + windowIfNewPeer(pParse, pOrderBy, regNewPeer, regPeer, lblWhereEnd); + } + if( pMWin->eStart==TK_FOLLOWING ){ + windowCodeOp(&s, WINDOW_AGGSTEP, 0, 0); + if( pMWin->eEnd!=TK_UNBOUNDED ){ + if( pMWin->eFrmType==TK_RANGE ){ + int lbl = sqlite3VdbeMakeLabel(pParse); + int addrNext = sqlite3VdbeCurrentAddr(v); + windowCodeRangeTest(&s, OP_Ge, s.current.csr, regEnd, s.end.csr, lbl); + windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 0); + sqlite3VdbeAddOp2(v, OP_Goto, 0, addrNext); + sqlite3VdbeResolveLabel(v, lbl); + }else{ + windowCodeOp(&s, WINDOW_RETURN_ROW, regEnd, 0); + windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + } + } + }else + if( pMWin->eEnd==TK_PRECEDING ){ + int bRPS = (pMWin->eStart==TK_PRECEDING && pMWin->eFrmType==TK_RANGE); + windowCodeOp(&s, WINDOW_AGGSTEP, regEnd, 0); + if( bRPS ) windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 0); + if( !bRPS ) windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + }else{ + int addr = 0; + windowCodeOp(&s, WINDOW_AGGSTEP, 0, 0); + if( pMWin->eEnd!=TK_UNBOUNDED ){ + if( pMWin->eFrmType==TK_RANGE ){ + int lbl = 0; + addr = sqlite3VdbeCurrentAddr(v); + if( regEnd ){ + lbl = sqlite3VdbeMakeLabel(pParse); + windowCodeRangeTest(&s, OP_Ge, s.current.csr, regEnd, s.end.csr, lbl); + } + windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 0); + windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + if( regEnd ){ + sqlite3VdbeAddOp2(v, OP_Goto, 0, addr); + sqlite3VdbeResolveLabel(v, lbl); } + }else{ + if( regEnd ){ + addr = sqlite3VdbeAddOp3(v, OP_IfPos, regEnd, 0, 1); + VdbeCoverage(v); + } + windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 0); + windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + if( regEnd ) sqlite3VdbeJumpHere(v, addr); } } + } - /* Otherwise, call windowCodeDefaultStep(). */ - if( bCache ){ - VdbeModuleComment((pParse->pVdbe, "Begin CacheStep()")); - windowCodeCacheStep(pParse, p, pWInfo, regGosub, addrGosub); + /* End of the main input loop */ + sqlite3VdbeResolveLabel(v, lblWhereEnd); + sqlite3WhereEnd(pWInfo); + + /* Fall through */ + if( pMWin->pPartition ){ + addrInteger = sqlite3VdbeAddOp2(v, OP_Integer, 0, regFlushPart); + sqlite3VdbeJumpHere(v, addrGosubFlush); + } + + addrEmpty = sqlite3VdbeAddOp1(v, OP_Rewind, csrWrite); + VdbeCoverage(v); + if( pMWin->eEnd==TK_PRECEDING ){ + int bRPS = (pMWin->eStart==TK_PRECEDING && pMWin->eFrmType==TK_RANGE); + windowCodeOp(&s, WINDOW_AGGSTEP, regEnd, 0); + if( bRPS ) windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 0); + }else if( pMWin->eStart==TK_FOLLOWING ){ + int addrStart; + int addrBreak1; + int addrBreak2; + int addrBreak3; + windowCodeOp(&s, WINDOW_AGGSTEP, 0, 0); + if( pMWin->eFrmType==TK_RANGE ){ + addrStart = sqlite3VdbeCurrentAddr(v); + addrBreak2 = windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 1); + addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1); + }else + if( pMWin->eEnd==TK_UNBOUNDED ){ + addrStart = sqlite3VdbeCurrentAddr(v); + addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regStart, 1); + addrBreak2 = windowCodeOp(&s, WINDOW_AGGINVERSE, 0, 1); }else{ - VdbeModuleComment((pParse->pVdbe, "Begin DefaultStep()")); - windowCodeDefaultStep(pParse, p, pWInfo, regGosub, addrGosub); + assert( pMWin->eEnd==TK_FOLLOWING ); + addrStart = sqlite3VdbeCurrentAddr(v); + addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regEnd, 1); + addrBreak2 = windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 1); + } + sqlite3VdbeAddOp2(v, OP_Goto, 0, addrStart); + sqlite3VdbeJumpHere(v, addrBreak2); + addrStart = sqlite3VdbeCurrentAddr(v); + addrBreak3 = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1); + sqlite3VdbeAddOp2(v, OP_Goto, 0, addrStart); + sqlite3VdbeJumpHere(v, addrBreak1); + sqlite3VdbeJumpHere(v, addrBreak3); + }else{ + int addrBreak; + int addrStart; + windowCodeOp(&s, WINDOW_AGGSTEP, 0, 0); + addrStart = sqlite3VdbeCurrentAddr(v); + addrBreak = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1); + windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 0); + sqlite3VdbeAddOp2(v, OP_Goto, 0, addrStart); + sqlite3VdbeJumpHere(v, addrBreak); + } + sqlite3VdbeJumpHere(v, addrEmpty); + + sqlite3VdbeAddOp1(v, OP_ResetSorter, s.current.csr); + if( pMWin->pPartition ){ + if( pMWin->regStartRowid ){ + sqlite3VdbeAddOp2(v, OP_Integer, 1, pMWin->regStartRowid); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pMWin->regEndRowid); } + sqlite3VdbeChangeP1(v, addrInteger, sqlite3VdbeCurrentAddr(v)); + sqlite3VdbeAddOp1(v, OP_Return, regFlushPart); } } diff --git a/test/altertab2.test b/test/altertab2.test index be55de9ee6..9fa40d0033 100644 --- a/test/altertab2.test +++ b/test/altertab2.test @@ -179,6 +179,7 @@ do_execsql_test 4.3 { } #------------------------------------------------------------------------- +ifcapable windowfunc { do_execsql_test 5.0 { CREATE TABLE t2(a); CREATE TRIGGER r2 AFTER INSERT ON t2 WHEN new.a NOT NULL BEGIN @@ -235,6 +236,7 @@ do_execsql_test 5.2 { do_execsql_test 5.3 { INSERT INTO t2x VALUES(1); } {} +} ;# windowfunc #------------------------------------------------------------------------- diff --git a/test/altertab3.test b/test/altertab3.test index 28c0587780..2bf6a9ddc1 100644 --- a/test/altertab3.test +++ b/test/altertab3.test @@ -20,6 +20,7 @@ ifcapable !altertable { return } +ifcapable windowfunc { do_execsql_test 1.0 { CREATE TABLE t1(a, b); CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN @@ -40,6 +41,7 @@ do_execsql_test 1.2 { do_execsql_test 1.3 { INSERT INTO t1 VALUES(1, 2); } +} ;# windowfunc #------------------------------------------------------------------------- reset_db @@ -79,7 +81,66 @@ do_execsql_test 3.2 { SELECT sql FROM sqlite_master WHERE name = 'v1' } {{CREATE VIEW v1 AS SELECT * FROM t1 WHERE a=1 OR (bbb IN ())}} +#------------------------------------------------------------------------- +reset_db +do_execsql_test 4.0 { + CREATE TABLE t1(a, b); + CREATE TABLE t3(e, f); + CREATE TRIGGER tr1 AFTER INSERT ON t1 BEGIN + INSERT INTO t2 VALUES(new.a, new.b); + END; +} +do_catchsql_test 4.1.2 { + BEGIN; + ALTER TABLE t3 RENAME TO t4; +} {1 {error in trigger tr1: no such table: main.t2}} +do_execsql_test 4.1.2 { + COMMIT; +} +do_execsql_test 4.1.3 { + SELECT type, name, tbl_name, sql + FROM sqlite_master WHERE type='table' AND name!='t1'; +} {table t3 t3 {CREATE TABLE t3(e, f)}} + + +do_catchsql_test 4.2.1 { + BEGIN; + ALTER TABLE t3 RENAME e TO eee; +} {1 {error in trigger tr1: no such table: main.t2}} +do_execsql_test 4.2.2 { + COMMIT; +} +do_execsql_test 4.2.3 { + SELECT type, name, tbl_name, sql + FROM sqlite_master WHERE type='table' AND name!='t1'; +} {table t3 t3 {CREATE TABLE t3(e, f)}} + +#------------------------------------------------------------------------- +reset_db +do_execsql_test 5.0 { + CREATE TABLE t1 ( + c1 integer, c2, PRIMARY KEY(c1 collate rtrim), + UNIQUE(c2) + ) +} +do_execsql_test 5.1 { + ALTER TABLE t1 RENAME c1 TO c3; +} + +#------------------------------------------------------------------------- +reset_db +do_execsql_test 6.0 { + CREATE TEMPORARY TABLE Table0 ( + Col0 INTEGER, + PRIMARY KEY(Col0 COLLATE RTRIM), + FOREIGN KEY (Col0) REFERENCES Table0 + ); +} + +do_execsql_test 6.1 { + ALTER TABLE Table0 RENAME Col0 TO Col0; +} finish_test diff --git a/test/autoinc.test b/test/autoinc.test index bc757319f8..2c7ee2a7e8 100644 --- a/test/autoinc.test +++ b/test/autoinc.test @@ -16,6 +16,7 @@ set testdir [file dirname $argv0] source $testdir/tester.tcl +set testprefix autoinc # If the library is not compiled with autoincrement support then # skip all tests in this file. @@ -856,4 +857,27 @@ do_test autoinc-12.7 { lappend res $msg } {0 ok} +#-------------------------------------------------------------------------- +reset_db +do_execsql_test 13.0 { + CREATE TABLE t1(i INTEGER PRIMARY KEY AUTOINCREMENT, j); + CREATE TABLE t2(i INTEGER PRIMARY KEY AUTOINCREMENT, j); + CREATE TABLE t3(i INTEGER PRIMARY KEY AUTOINCREMENT, j); + + INSERT INTO t1 VALUES(NULL, 1); + INSERT INTO t2 VALUES(NULL, 2); + INSERT INTO t3 VALUES(NULL, 3); + + SELECT name FROM sqlite_sequence; +} {t1 t2 t3} + +do_execsql_test 13.1 { + UPDATE sqlite_sequence SET name=NULL WHERE name='t2'; + INSERT INTO t3 VALUES(NULL, 4); + DELETE FROM t3; + INSERT INTO t3 VALUES(NULL, 5); + SELECT * FROM t3; +} {3 5} + + finish_test diff --git a/test/autoindex5.test b/test/autoindex5.test index 368f2d302c..eabdeae482 100644 --- a/test/autoindex5.test +++ b/test/autoindex5.test @@ -128,6 +128,7 @@ do_execsql_test 2.1 { # Segfault due to multiple uses of the same subquery where the # subquery is implemented via coroutine. # +ifcapable windowfunc { sqlite3 db :memory: do_execsql_test 3.0 { -- This is the original test case reported on the mailing list @@ -166,6 +167,8 @@ do_execsql_test 3.0 { AND (albums.id IN (1, 2))) )); } {1 Ar} +} ;# windowfunc + # The remaining test cases were discovered (by Dan) during trouble-shooting sqlite3 db :memory: do_execsql_test 3.1 { diff --git a/test/badutf2.test b/test/badutf2.test index 36b40fb95c..64a730d6fa 100644 --- a/test/badutf2.test +++ b/test/badutf2.test @@ -98,12 +98,18 @@ foreach { i len uval xstr ustr u2u } { } $uval } - do_test badutf2-4.1.$i { - sqlite3_reset $S - sqlite3_bind_text $S 1 $xstr $len - sqlite3_step $S - utf8_to_ustr2 [ sqlite3_column_text $S 0 ] - } $ustr + # Tcl 8.7 and later do automatic bad-utf8 correction for + # characters 0x80 thru 0x9f so test case 5 does not work here. + if {$i==5 && $tcl_version>=8.7} { + # no-op + } else { + do_test badutf2-4.1.$i { + sqlite3_reset $S + sqlite3_bind_text $S 1 $xstr $len + sqlite3_step $S + utf8_to_ustr2 [ sqlite3_column_text $S 0 ] + } $ustr + } ifcapable debug { do_test badutf2-5.1.$i { diff --git a/test/bestindex1.test b/test/bestindex1.test index 1d79c73166..b97af11140 100644 --- a/test/bestindex1.test +++ b/test/bestindex1.test @@ -266,5 +266,62 @@ do_execsql_test 3.5 { 4 0 ValueB 4 0 ValueB } +#------------------------------------------------------------------------- +# If there is an IN(..) condition in the WHERE clause of a query on a +# virtual table, the xBestIndex method is first invoked with the IN(...) +# represented by a "usable" SQLITE_INDEX_CONSTRAINT_EQ constraint. If +# the virtual table elects to use the IN(...) constraint, then the +# xBestIndex method is invoked again, this time with the IN(...) marked +# as "not usable". Depending on the relative costs of the two plans as +# defined by the virtual table implementation, and the cardinality of the +# IN(...) operator, SQLite chooses the most efficient plan. +# +# At one point the second invocation of xBestIndex() was only being made +# for join queries. The following tests check that this problem has been +# fixed. +# +proc vtab_command {method args} { + switch -- $method { + xConnect { + return "CREATE TABLE t1(a, b, c, d)" + } + + xBestIndex { + set clist [lindex $args 0] + lappend ::bestindex_calls $clist + set ret "cost 1000000 idxnum 555" + for {set i 0} {$i < [llength $clist]} {incr i} { + array set C [lindex $clist $i] + if {$C(usable)} { lappend ret use $i } + } + return $ret + } + } + return {} +} + +do_execsql_test 4.0 { + CREATE VIRTUAL TABLE x1 USING tcl(vtab_command); +} {} + +do_test 4.1 { + set ::bestindex_calls [list] + execsql { + SELECT * FROM x1 WHERE a=? AND b BETWEEN ? AND ? AND c IN (1, 2, 3, 4); + } + set ::bestindex_calls +} [list \ + [list {op eq column 0 usable 1} \ + {op eq column 2 usable 1} \ + {op ge column 1 usable 1} \ + {op le column 1 usable 1} \ + ] \ + [list {op eq column 0 usable 1} \ + {op eq column 2 usable 0} \ + {op ge column 1 usable 1} \ + {op le column 1 usable 1} + ] +] + finish_test diff --git a/test/capi3d.test b/test/capi3d.test index 3b9b8375d1..b56d7929b0 100644 --- a/test/capi3d.test +++ b/test/capi3d.test @@ -115,10 +115,30 @@ ifcapable wal { test_is_readonly capi3d-2.8 {PRAGMA application_id=1234} 0 test_is_readonly capi3d-2.9 {VACUUM} 0 test_is_readonly capi3d-2.10 {PRAGMA integrity_check} 1 -do_test capi3-2.99 { +do_test capi3-2.49 { sqlite3_stmt_readonly 0 } 1 + +# Tests for the is-explain interface. +# +proc test_is_explain {testname sql truth} { + do_test $testname [format { + set DB [sqlite3_connection_pointer db] + set STMT [sqlite3_prepare $DB {%s} -1 TAIL] + set rc [sqlite3_stmt_isexplain $STMT] + sqlite3_finalize $STMT + set rc + } $sql] $truth +} + +test_is_explain capi3d-2.51 {SELECT * FROM sqlite_master} 0 +test_is_explain capi3d-2.52 { explain SELECT * FROM sqlite_master} 1 +test_is_explain capi3d-2.53 { Explain Query Plan select * FROM sqlite_master} 2 +do_test capi3-2.99 { + sqlite3_stmt_isexplain 0 +} 0 + # Tests for sqlite3_stmt_busy # do_test capi3d-3.1 { diff --git a/test/corrupt2.test b/test/corrupt2.test index eee7ed322c..f97a526ef5 100644 --- a/test/corrupt2.test +++ b/test/corrupt2.test @@ -95,11 +95,11 @@ do_test corrupt2-1.4 { close $f sqlite3 db2 corrupt.db - catchsql " - $::presql - SELECT * FROM sqlite_master; - " db2 -} {1 {database disk image is malformed}} + # Note: This test is no longer meaningful due to the deferred computation + # of MemPage.nFree + catchsql {PRAGMA quick_check} db2 +} {0 {{*** in database main *** +Page 1: free space corruption}}} do_test corrupt2-1.5 { db2 close @@ -118,11 +118,9 @@ do_test corrupt2-1.5 { close $f sqlite3 db2 corrupt.db - catchsql " - $::presql - SELECT * FROM sqlite_master; - " db2 -} {1 {database disk image is malformed}} + catchsql {PRAGMA quick_check} db2 +} {0 {{*** in database main *** +Page 1: free space corruption}}} db2 close # Corrupt a database by having 2 indices of the same name: diff --git a/test/corruptC.test b/test/corruptC.test index 7c6ffb8102..d151a27304 100644 --- a/test/corruptC.test +++ b/test/corruptC.test @@ -97,7 +97,8 @@ do_test corruptC-2.1 { sqlite3 db test.db catchsql {PRAGMA integrity_check} -} {1 {database disk image is malformed}} +} {0 {{*** in database main *** +Page 3: free space corruption}}} # test that a corrupt content offset size is handled (seed 5649) # diff --git a/test/corruptD.test b/test/corruptD.test index 63474584c3..eb6ccb3fcd 100644 --- a/test/corruptD.test +++ b/test/corruptD.test @@ -111,8 +111,9 @@ proc restore_file {} { do_test corruptD-1.1.1 { incr_change_counter hexio_write test.db [expr 1024+1] FFFF - catchsql { SELECT * FROM t1 ORDER BY rowid } -} {1 {database disk image is malformed}} + catchsql { PRAGMA quick_check } +} {0 {{*** in database main *** +Page 2: free space corruption}}} do_test corruptD-1.1.2 { incr_change_counter hexio_write test.db [expr 1024+1] [hexio_render_int32 1021] diff --git a/test/corruptK.test b/test/corruptK.test index ad5b9a4718..1569afe4a8 100644 --- a/test/corruptK.test +++ b/test/corruptK.test @@ -68,9 +68,15 @@ do_test 1.2 { do_execsql_test 1.3 { INSERT INTO t1 VALUES(randomblob(20)); } + +# This test no longer functions due to the deferred computation of +# MemPage.nFree. +# +if 0 { do_catchsql_test 1.4 { INSERT INTO t1 VALUES(randomblob(90)); } {1 {database disk image is malformed}} +} #------------------------------------------------------------------------- reset_db diff --git a/test/corruptL.test b/test/corruptL.test index 7b84058caa..213af9d343 100644 --- a/test/corruptL.test +++ b/test/corruptL.test @@ -123,15 +123,20 @@ do_test 1.0 { do_catchsql_test 1.1 { PRAGMA cell_size_check = off; DROP INDEX t1x1; -} {1 {no such index: t1x1}} +} {1 {database disk image is malformed}} do_catchsql_test 1.2 { SELECT sum(s+length(b)) FROM t1 WHERE a IN (110,10,150) AND q IS NULL; -} {1 {no such table: t1}} +} {1 {database disk image is malformed}} do_catchsql_test 1.3 { REINDEX t1; -} {1 {unable to identify the object to be reindexed}} +} {1 {database disk image is malformed}} + +do_catchsql_test 1.4 { + PRAGMA integrity_check +} {1 {database disk image is malformed}} + #------------------------------------------------------------------------- reset_db @@ -722,4 +727,115 @@ do_catchsql_test 7.1 { SELECT * FROM sqlite_master; } {1 {malformed database schema (t1x1) - invalid rootpage}} +#------------------------------------------------------------------------- +reset_db +do_test 8.0 { + sqlite3 db {} + db deserialize [decode_hexdb { +| size 2048 pagesize 512 filename a.db +| page 1 offset 0 +| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. +| 16: 02 00 01 01 00 40 20 20 ff ff 00 0c 00 00 00 07 .....@ ........ +| 32: 0b 00 00 00 00 00 00 00 00 00 00 08 9c 00 00 04 ................ +| 48: 00 00 00 e0 09 00 00 01 00 00 00 01 00 00 00 00 ................ +| 64: 00 00 00 00 f2 ff 00 00 00 00 00 00 00 00 00 00 ................ +| 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c ................ +| 96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0 ..,P............ +| 112: 05 56 01 86 01 2a 01 06 00 00 00 00 00 06 00 00 .V...*.......... +| 128: 00 ff 00 00 ff ff ff e1 00 00 00 00 00 00 00 00 ................ +| 144: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................ +| 160: 00 00 00 00 00 00 00 00 f2 00 00 00 00 00 00 00 ................ +| 176: 00 00 f9 ff ff ff ff ff ff ff 00 00 00 5f 00 fb ............._.. +| 192: 00 00 00 00 00 00 00 00 00 e1 ff 00 00 00 00 00 ................ +| 208: 00 00 10 00 00 00 00 00 1e 00 00 00 fe 00 00 00 ................ +| 224: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ca 00 ................ +| 240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 ...............5 +| 256: 00 00 00 00 ef ff 22 07 06 17 11 11 01 30 39 38 .............098 +| 272: 62 6c 65 74 38 38 74 04 43 52 45 41 54 45 20 54 blet88t.CREATE T +| 288: 41 42 4c 45 20 74 34 28 87 29 2a 06 06 17 13 11 ABLE t4(.)*..... +| 304: 01 3f 69 4f 64 65 78 74 33 78 74 40 05 43 52 45 .?iOdext3xt@.CRE +| 320: 41 54 45 20 49 6e 44 45 58 20 74 33 78 20 4f 4e ATE InDEX t3x ON +| 336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e t3(x).......Ein +| 352: 00 04 00 00 34 63 64 74 3d 05 43 52 45 41 54 45 ....4cdt=.CREATE +| 368: 20 49 4e 44 45 58 20 63 74 64 32 20 4f 4e 20 74 INDEX ctd2 ON t +| 384: 32 28 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 6c 2(..D)(......=tl +| 400: 62 61 d4 65 33 74 33 04 43 52 45 41 54 45 20 54 ba.e3t3.CREATE T +| 416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 ABLE t3(c,x,e,f) +| 432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74 (......=tablet2t +| 448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 2.CREATE TABLE t +| 464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11 2(c,d,e,f)$..... +| 480: 01 35 74 60 62 6c 65 74 31 74 31 02 43 52 45 41 .5t`blet1t1.CREA +| 496: 54 45 20 54 41 42 4c 45 20 74 30 28 61 2c 62 29 TE TABLE t0(a,b) +| page 2 offset 512 +| 0: 0d 00 ff 11 04 01 cf 80 01 fa 01 09 00 de 01 cf ................ +| 16: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................ +| 32: 00 00 08 00 00 00 00 00 00 11 00 00 00 00 00 13 ................ +| 48: 00 00 00 00 00 00 00 00 00 00 00 01 00 e0 ff ff ................ +| 64: ff d2 ff ff ff 00 f8 ff ff ff 00 00 00 00 00 00 ................ +| 80: 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +| 96: 00 00 00 00 ff de 00 00 00 00 00 00 00 00 00 00 ................ +| 112: 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 .............@.. +| 128: 2a 00 00 00 00 00 00 00 00 f7 00 00 00 00 00 00 *............... +| 144: 00 00 00 00 00 21 00 00 00 00 00 00 00 00 00 00 .....!.......... +| 160: 01 64 00 00 00 00 04 80 ff ff ff 00 00 00 00 00 .d.............. +| 176: 00 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 ................ +| 192: 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 ..@............. +| 208: b5 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 .......@........ +| 224: 00 00 00 f6 00 ee ff ff ff 00 00 00 00 00 00 00 ................ +| 272: f2 00 00 00 00 00 00 00 00 00 f9 ff ff ff ff ff ................ +| 288: ff ff 00 00 00 5f 00 fb 00 00 00 00 00 00 00 00 ....._.......... +| 320: 1e 00 00 00 fe 00 00 00 00 00 00 00 00 00 00 00 ................ +| 336: 00 00 00 00 00 00 ca 00 00 00 00 00 00 00 ff ec ................ +| 352: 00 00 00 00 00 00 00 32 00 00 00 00 ef ff 22 07 .......2........ +| 368: 06 17 11 11 01 30 74 61 62 6c 65 74 38 38 74 04 .....0tablet88t. +| 384: 43 52 45 41 54 45 20 54 41 42 4c 45 20 8c cb d7 CREATE TABLE ... +| 400: 78 d6 d5 f9 f9 17 13 11 01 3f 69 4f 64 65 78 74 x........?iOdext +| 416: 33 78 74 33 05 43 52 45 41 54 45 26 49 6e 44 45 3xt3.CREATE&InDE +| 432: 58 20 74 33 78 00 00 00 00 00 00 00 00 00 00 00 X t3x........... +| 464: 00 00 00 00 00 13 76 65 6e 65 69 67 68 74 13 03 ......veneight.. +| 480: 03 40 07 07 15 00 54 45 20 49 4e 44 45 58 20 74 .@....TE INDEX t +| 496: 31 63 64 20 4f 4e 20 74 ce d7 f5 f0 44 09 01 02 1cd ON t....D... +| page 3 offset 1024 +| 0: 0d 00 00 00 48 01 54 00 01 f6 e2 ec 01 c5 01 aa ....H.T......... +| 16: 30 34 28 87 29 32 06 f5 16 13 11 01 8e 61 24 64 04(.)2.......a$d +| 32: 65 78 74 37 78 1f 33 6d 6d 6d 6d 6d 00 00 04 06 ext7x.3mmmmm.... +| 48: 6d 41 6d 6d 6e 6d 6d 00 00 02 00 6d 6d 6d 6d 6d mAmmnmm....mmmmm +| 64: 15 11 01 45 45 45 45 45 45 45 45 45 45 45 45 45 ...EEEEEEEEEEEEE +| 80: 45 45 45 45 45 45 45 45 45 45 45 00 45 63 74 64 EEEEEEEEEEE.Ectd +| 96: 34 20 4f 4e 20 61 62 6c 5d 74 38 38 74 04 43 52 4 ON abl]t88t.CR +| 112: 45 41 54 45 20 54 41 42 4c 45 20 74 34 28 87 29 EATE TABLE t4(.) +| 128: 2a 06 06 13 13 01 00 00 00 4f 64 6e 78 74 33 44 *........Odnxt3D +| 144: 74 13 05 43 52 45 41 54 45 20 49 6e 44 45 00 00 t..CREATE InDE.. +| 160: 00 00 00 00 00 00 00 f9 ff ff ff ff ff ff ff 00 ................ +| 176: 00 00 5f 00 fb 00 00 2d 00 00 00 00 00 00 00 00 .._....-........ +| 192: 00 00 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 ................ +| 208: 00 fe 00 00 00 00 17 15 11 01 45 69 6e 64 65 2e ..........Einde. +| 224: 5b 38 63 64 74 3d 05 43 52 45 41 54 45 20 49 4e [8cdt=.CREATE IN +| 240: 44 45 58 20 63 20 64 32 20 4f 4e 20 74 32 28 0a DEX c d2 ON t2(. +| 256: 0c 44 32 05 00 10 00 00 11 11 3d 74 6c 62 61 d4 .D2.......=tlba. +| 272: 65 33 74 33 04 43 52 45 41 54 45 20 54 41 42 4c e3t3.CREATE TABL +| 288: 45 20 74 36 ff ff 7f ff 43 52 45 41 54 45 20 49 E t6....CREATE I +| 304: 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63 65 28 sqlite_sequence( +| 320: 0a 0c 44 29 28 05 06 17 11 11 01 3d 74 6c 62 61 ..D)(......=tlba +| 336: 20 00 00 00 33 04 43 52 45 41 54 45 20 54 41 42 ...3.CREATE TAB +| 352: 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 28 02 LE t3(c,x,e,f)(. +| 368: 06 00 00 7f ff 40 41 54 45 20 49 6e 44 45 58 20 .....@ATE InDEX +| 384: 74 33 78 20 4f 4e 20 74 31 28 78 29 2e 04 06 17 t3x ON t1(x).... +| 400: 15 11 01 45 69 6e 64 65 2e 74 34 63 64 74 3d 05 ...Einde.t4cdt=. +| 416: 00 00 00 00 00 00 00 00 00 00 00 4d 00 00 00 00 ...........M.... +| 432: 01 00 00 00 00 00 00 05 00 00 10 00 00 00 00 00 ................ +| 448: 00 01 00 00 00 00 01 00 00 00 00 07 40 14 00 00 ............@... +| 464: 00 00 21 00 40 18 00 00 00 00 00 00 40 1c 00 00 ..!.@.......@... +| 480: 00 00 ff ff ff 00 00 00 5f 00 fb 00 00 2d 00 00 ........_....-.. +| 496: 00 00 00 1e 00 00 00 fe 00 00 64 00 00 ff fb 02 ..........d..... +| page 4 offset 1536 +| 0: 0d 00 39 00 00 02 00 00 00 00 00 00 00 00 00 00 ..9............. +| end a.db +}]} {} + + +do_catchsql_test 8.1 { + INSERT INTO t3 SELECT * FROM t2; +} {1 {database disk image is malformed}} + finish_test diff --git a/test/createtab.test b/test/createtab.test index 01e0b6122e..5773fbf5f6 100644 --- a/test/createtab.test +++ b/test/createtab.test @@ -12,7 +12,6 @@ # focus of this file is testing that it is OK to create new tables # and indices while creating existing tables and indices. # -# $Id: createtab.test,v 1.3 2007/09/12 17:01:45 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -142,5 +141,14 @@ for {set av 0} {$av<=$upperBound} {incr av} { integrity_check createtab-$av.40 } + +# 2019-03-31 Ensure that a proper error is returned for an index +# with too many columns. +# +do_test createtab-3.1 { + db eval {DROP TABLE IF EXISTS t1;} + set sql "CREATE TABLE t1(x,UNIQUE(x[string repeat ,x 100000]))" + catchsql $sql +} {1 {too many columns in index}} finish_test diff --git a/test/dbfuzz001.test b/test/dbfuzz001.test index 01af4df2d8..77df86b30e 100644 --- a/test/dbfuzz001.test +++ b/test/dbfuzz001.test @@ -189,11 +189,9 @@ ifcapable !oversize_cell_check { # cause a rebalance operation, which would leave the btree in a weird # state that would lead to segfaults and or assertion faults. # -set res {0 {}} -ifcapable oversize_cell_check { set res {1 {database disk image is malformed}} } -do_catchsql_test dbfuzz001-110 { +do_execsql_test dbfuzz001-110 { DELETE FROM t3 WHERE x IS NOT NULL AND +rowid=6; -} $res +} {} # This is a dbfuzz2-generate test case that can cause a page with # pPage->nCell==0 to enter the balancer. diff --git a/test/dbfuzz2.c b/test/dbfuzz2.c index 1649d42d54..3e277c9d34 100644 --- a/test/dbfuzz2.c +++ b/test/dbfuzz2.c @@ -43,8 +43,10 @@ #include #include #include +#ifndef _WIN32 #include #include +#endif #include "sqlite3.h" /* @@ -72,6 +74,10 @@ static int bVdbeDebug = 0; /* Maximum size of the in-memory database file */ static sqlite3_int64 szMax = 104857600; +/* Progress handler callback data */ +static int nCb = 0; /* Number of callbacks seen so far */ +static int mxCb = 250000; /* Maximum allowed callbacks */ + /***** Copy/paste from ext/misc/memtrace.c ***************************/ /* The original memory allocation routines */ static sqlite3_mem_methods memtraceBase; @@ -155,6 +161,21 @@ int sqlite3MemTraceDeactivate(void){ } /***** End copy/paste from ext/misc/memtrace.c ***************************/ +/* +** Progress handler callback +** +** Count the number of callbacks and cause an abort once the limit is +** reached. +*/ +static int progress_handler(void *pNotUsed){ + nCb++; + if( nCb=1 ){ + printf("-- Progress limit of %d reached\n", mxCb); + } + return 1; +} + /* libFuzzer invokes this routine with fuzzed database files (in aData). ** This routine run SQLite against the malformed database to see if it ** can provoke a failure or malfunction. @@ -181,16 +202,22 @@ int LLVMFuzzerTestOneInput(const uint8_t *aData, size_t nByte){ SQLITE_DESERIALIZE_RESIZEABLE | SQLITE_DESERIALIZE_FREEONCLOSE); x = szMax; +#ifdef SQLITE_FCNTL_SIZE_LIMIT sqlite3_file_control(db, "main", SQLITE_FCNTL_SIZE_LIMIT, &x); +#endif if( bVdbeDebug ){ sqlite3_exec(db, "PRAGMA vdbe_debug=ON", 0, 0, 0); } + if( mxCb>0 ){ + sqlite3_progress_handler(db, 10, progress_handler, 0); + } for(i=0; i=1 ){ printf("%s\n", azSql[i]); fflush(stdout); } zErr = 0; + nCb = 0; rc = sqlite3_exec(db, azSql[i], 0, 0, &zErr); if( rc && eVerbosity>=1 ){ printf("-- rc=%d zErr=%s\n", rc, zErr); @@ -245,6 +272,14 @@ int LLVMFuzzerInitialize(int *pArgc, char ***pArgv){ bVdbeDebug = 1; continue; } + if( strcmp(z,"limit")==0 ){ + if( i+1==argc ){ + fprintf(stderr, "missing argument to %s\n", argv[i]); + exit(1); + } + mxCb = strtol(argv[++i], 0, 0); + continue; + } if( strcmp(z,"memtrace")==0 ){ sqlite3MemTraceActivate(stdout); continue; @@ -261,6 +296,7 @@ int LLVMFuzzerInitialize(int *pArgc, char ***pArgv){ szMax = strtol(argv[++i], 0, 0); continue; } +#ifndef _WIN32 if( strcmp(z,"max-stack")==0 || strcmp(z,"max-data")==0 || strcmp(z,"max-as")==0 @@ -291,6 +327,7 @@ int LLVMFuzzerInitialize(int *pArgc, char ***pArgv){ zType, (int)x.rlim_cur, (int)y.rlim_cur); continue; } +#endif /* _WIN32 */ } argv[j++] = argv[i]; } diff --git a/test/delete4.test b/test/delete4.test index 34ba9aaef8..f64778a167 100644 --- a/test/delete4.test +++ b/test/delete4.test @@ -183,5 +183,82 @@ do_execsql_test 6.1 { SELECT x FROM t2; } {5} +#------------------------------------------------------------------------- +# Test the effect of failing to find a table row based on an index key +# within a DELETE. Either because the db is corrupt, or a trigger on another +# row already deleted the entry, or because a BEFORE trigger on the current +# row has already deleted it. +# +do_execsql_test 7.1.0 { + CREATE TABLE t3(id INT PRIMARY KEY, a, b) WITHOUT ROWID; + CREATE INDEX t3a ON t3(a); + CREATE INDEX t3b ON t3(b); + + INSERT INTO t3 VALUES(1, 1, 1); + INSERT INTO t3 VALUES(2, 2, 2); + INSERT INTO t3 VALUES(3, 3, 3); + INSERT INTO t3 VALUES(4, 4, 1); +} +do_execsql_test 7.1.1 { + DELETE FROM t3 WHERE a=4 OR b=1; +} +do_execsql_test 7.1.2 { + SELECT * FROM t3; +} { 2 2 2 3 3 3 } + +do_execsql_test 7.2.0 { + CREATE TABLE t4(a PRIMARY KEY, b) WITHOUT ROWID; + CREATE INDEX t4i ON t4(b); + INSERT INTO t4 VALUES(1, 'hello'); + INSERT INTO t4 VALUES(2, 'world'); + + CREATE TABLE t5(a PRIMARY KEY, b) WITHOUT ROWID; + CREATE INDEX t5i ON t5(b); + INSERT INTO t5 VALUES(1, 'hello'); + INSERT INTO t5 VALUES(3, 'world'); + + PRAGMA writable_schema = 1; + UPDATE sqlite_master SET rootpage = ( + SELECT rootpage FROM sqlite_master WHERE name = 't5' + ) WHERE name = 't4'; +} + +db close +sqlite3 db test.db +do_execsql_test 7.2.1 { + DELETE FROM t4 WHERE b='world' +} +reset_db + +do_execsql_test 7.3.0 { + CREATE TABLE t3(id INT PRIMARY KEY, a, b) WITHOUT ROWID; + INSERT INTO t3 VALUES(1, 2, 3); + INSERT INTO t3 VALUES(4, 5, 6); + INSERT INTO t3 VALUES(7, 8, 9); + CREATE TRIGGER t3t BEFORE DELETE ON t3 BEGIN + DELETE FROM t3 WHERE id=old.id+3; + END; +} + +do_execsql_test 7.3.1 { + DELETE FROM t3 WHERE a IN(2, 5, 8); + SELECT * FROM t3; +} {} + +do_execsql_test 7.3.2 { + DROP TRIGGER t3t; + INSERT INTO t3 VALUES(1, 2, 3); + INSERT INTO t3 VALUES(4, 5, 6); + INSERT INTO t3 VALUES(7, 8, 9); + CREATE TRIGGER t3t BEFORE DELETE ON t3 BEGIN + DELETE FROM t3 WHERE id=old.id; + END; +} + +do_execsql_test 7.3.3 { + DELETE FROM t3 WHERE a IN(2, 5, 8); + SELECT * FROM t3; +} {} + finish_test diff --git a/test/e_vacuum.test b/test/e_vacuum.test index 3fd34afd43..cfe7f8464f 100644 --- a/test/e_vacuum.test +++ b/test/e_vacuum.test @@ -219,6 +219,8 @@ do_test e_vacuum-2.1.8 { expr {[file size test.db2]<$::original_size} } 1 # a database is VACUUMed. Tests e_vacuum-3.1.3 - 3.1.4 show that adding # an INTEGER PRIMARY KEY column to a table stops this from happening. # +# Update 2019-01-07: Rowids are now preserved by VACUUM. +# do_execsql_test e_vacuum-3.1.1 { CREATE TABLE t4(x); INSERT INTO t4(x) VALUES('x'); @@ -232,6 +234,7 @@ do_execsql_test e_vacuum-3.1.2 { SELECT rowid, x FROM t4; } {1 x 2 z} +# Rowids are preserved if an INTEGER PRIMARY KEY is used do_execsql_test e_vacuum-3.1.3 { CREATE TABLE t5(x, y INTEGER PRIMARY KEY); INSERT INTO t5(x) VALUES('x'); @@ -245,9 +248,47 @@ do_execsql_test e_vacuum-3.1.4 { SELECT rowid, x FROM t5; } {1 x 3 z} -# EVIDENCE-OF: R-49563-33883 A VACUUM will fail if there is an open -# transaction, or if there are one or more active SQL statements when it -# is run. +# Rowid is preserved for VACUUM INTO +do_execsql_test e_vacuum-3.1.5 { + DROP TABLE t5; + CREATE TABLE t5(x); + INSERT INTO t5(x) VALUES('x'); + INSERT INTO t5(x) VALUES('y'); + INSERT INTO t5(x) VALUES('z'); + DELETE FROM t5 WHERE x = 'y'; + SELECT rowid, x FROM t5; +} {1 x 3 z} +forcedelete test2.db +do_execsql_test e_vacuum-3.1.6 { + VACUUM INTO 'test2.db'; + ATTACH 'test2.db' AS aux1; + SELECT rowid, x FROM aux1.t5; + DETACH aux1; +} {1 x 3 z} + +# Rowids are not renumbered if the table being vacuumed +# has indexes. +do_execsql_test e_vacuum-3.1.7 { + DROP TABLE t5; + CREATE TABLE t5(x,y,z); + INSERT INTO t5(x) VALUES('x'); + INSERT INTO t5(x) VALUES('y'); + INSERT INTO t5(x) VALUES('z'); + UPDATE t5 SET y=x, z=random(); + DELETE FROM t5 WHERE x = 'y'; + CREATE INDEX t5x ON t5(x); + CREATE UNIQUE INDEX t5y ON t5(y); + CREATE INDEX t5zxy ON t5(z,x,y); + SELECT rowid, x FROM t5; +} {1 x 3 z} +do_execsql_test e_vacuum-3.1.8 { + VACUUM; + SELECT rowid, x FROM t5; +} {1 x 3 z} + +# EVIDENCE-OF: R-12218-18073 A VACUUM will fail if there is an open +# transaction on the database connection that is attempting to run the +# VACUUM. # do_execsql_test e_vacuum-3.2.1.1 { BEGIN } {} do_catchsql_test e_vacuum-3.2.1.2 { diff --git a/test/fts3atoken.test b/test/fts3atoken.test index 4ce38762d6..1dccf41266 100644 --- a/test/fts3atoken.test +++ b/test/fts3atoken.test @@ -86,11 +86,48 @@ do_test fts3atoken-1.5 { } } {{There was movement at the station}} +unset -nocomplain simple blah2name simplename +set simplename "simple" +set blah2name "blah2" +set simple [db one {SELECT fts3_tokenizer('simple')}] sqlite3_db_config db SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 0 do_catchsql_test 1.6 { SELECT fts3_tokenizer('blah', fts3_tokenizer('simple')) IS NULL; } {1 {fts3tokenize disabled}} +do_test fts3atoken-1.7 { + execsql { + SELECT fts3_tokenizer('blah2', $simple) IS NULL; + } +} {1} + +# With ENABLE_FTS3_TOKENIZER off, the fts3_tokenzer(1) function +# returns NULL unless the first parameter is a bound parameter. +# If the first parameter is a bound parameter, then fts3_tokenizer(1) +# returns the actual pointer value as a BLOB. +# +do_test fts3atoken-1.8 { + execsql { + SELECT fts3_tokenizer($blah2name) == fts3_tokenizer($simplename), + typeof(fts3_tokenizer($blah2name)), + typeof(fts3_tokenizer('blah2')), + typeof(fts3_tokenizer($simplename)), + typeof(fts3_tokenizer('simple')); + } +} {1 blob null blob null} +# With ENABLE_FTS3_TOKENIZER on, fts3_tokenizer() always returns +# the BLOB pointer, regardless the parameter +# +sqlite3_db_config db SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1 +do_test fts3atoken-1.9 { + execsql { + SELECT fts3_tokenizer('blah2') == fts3_tokenizer('simple'), + typeof(fts3_tokenizer($blah2name)), + typeof(fts3_tokenizer('blah2')), + typeof(fts3_tokenizer($simplename)), + typeof(fts3_tokenizer('simple')); + } +} {1 blob blob blob blob} #-------------------------------------------------------------------------- # Test cases fts3atoken-2.* test error cases in the scalar function based @@ -107,6 +144,7 @@ do_test fts3atoken-2.1 { # simple input string via the built-in test function. This is as much # to test the test function as the tokenizer implementations. # +sqlite3_db_config db SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1 do_test fts3atoken-3.1 { execsql { SELECT fts3_tokenizer_test('simple', 'I don''t see how'); diff --git a/test/fts3corrupt4.test b/test/fts3corrupt4.test index 3fd616b688..12a3dfa0aa 100644 --- a/test/fts3corrupt4.test +++ b/test/fts3corrupt4.test @@ -2586,7 +2586,6 @@ do_test 17.0 { | end crash-f15972acf5bc1c.db }]} {} -breakpoint do_execsql_test 17.1 { BEGIN; INSERT INTO t1(t1) SELECT x FROM t2; @@ -3052,5 +3051,869 @@ do_catchsql_test 19.1 { SELECT rowid,a,c,snippet(t1,85101090932165,-1,10) FROM t1 WHERE a MATCH 'rtree'; } {1 {database disk image is malformed}} +#------------------------------------------------------------------------- +reset_db +do_test 20.0 { + sqlite3 db {} + db deserialize [decode_hexdb { +.open --hexdb +| size 28672 pagesize 4096 filename crash-afecd03c862e58.db +| page 1 offset 0 +| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. +| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 07 .....@ ........ +| 32: 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 04 ................ +| 96: 00 00 00 00 0d 0e ef 00 07 0d 4d 00 0f bd 0f 5f ..........M...._ +| 112: 0e f7 0e 06 0e bc 0d a4 0d 4d 00 00 01 00 00 00 .........M...... +| 3392: 00 00 00 00 00 00 00 00 00 00 00 00 00 55 07 07 .............U.. +| 3408: 17 1b 1b 01 81 01 74 61 62 6c 65 74 31 5f 73 74 ......tablet1_st +| 3424: 61 74 74 31 5f 73 74 61 74 07 43 52 45 41 54 45 att1_stat.CREATE +| 3440: 20 54 41 42 4c 45 20 27 74 31 5f 73 74 61 74 27 TABLE 't1_stat' +| 3456: 28 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d (id INTEGER PRIM +| 3472: 41 52 59 20 4b 45 59 2c 20 76 61 6c 75 65 20 42 ARY KEY, value B +| 3488: 4c 4f 42 29 60 06 07 17 21 21 01 81 0b 74 61 62 LOB)`...!!...tab +| 3504: 6c 65 74 31 5f 64 6f 63 73 69 7a 65 74 31 5f 64 let1_docsizet1_d +| 3520: 6f 63 73 69 7a 65 06 43 52 45 41 54 45 20 54 41 ocsize.CREATE TA +| 3536: 42 4c 45 20 27 74 31 5f 64 6f 63 73 69 7a 65 27 BLE 't1_docsize' +| 3552: 28 64 6f 63 69 64 20 49 4e 54 45 47 45 52 20 50 (docid INTEGER P +| 3568: 52 49 4d 41 52 59 30 4b 45 59 2c 20 73 69 7a 65 RIMARY0KEY, size +| 3584: 20 42 4c 4f 42 29 81 33 04 07 17 1f 1f 01 82 35 BLOB).3.......5 +| 3600: 74 61 62 6c 65 74 31 5f 73 65 67 64 69 72 74 31 tablet1_segdirt1 +| 3616: 5f 73 65 67 64 69 25 04 43 52 45 41 54 45 20 54 _segdi%.CREATE T +| 3632: 41 42 4c 45 20 27 74 31 5f 73 65 67 64 69 72 27 ABLE 't1_segdir' +| 3648: 28 6c 65 76 65 6c 20 49 4e 54 45 47 45 52 2c 69 (level INTEGER,i +| 3664: 64 78 20 49 4e 54 45 47 45 52 2c 73 74 61 72 74 dx INTEGER,start +| 3680: 5f 62 6c 6f 63 6b 20 49 4e 54 45 47 45 52 2c 6c _block INTEGER,l +| 3696: 65 61 76 65 73 5f 65 6e 64 5f 62 6c 6f 63 6b 20 eaves_end_block +| 3712: 49 4d 54 45 47 45 52 2c 65 6e 64 5f 62 6c 6f 63 IMTEGER,end_bloc +| 3728: 6b 20 49 4e 54 45 47 45 52 2c 72 6f 6f 74 20 42 k INTEGER,root B +| 3744: 4c 4f 42 2c 50 52 49 4d 41 52 59 20 4b 45 59 28 LOB,PRIMARY KEY( +| 3760: 6c 65 76 65 6c 2c 20 69 64 78 29 29 31 05 06 17 level, idx))1... +| 3776: 45 1f 01 00 69 6e 64 65 78 73 71 6c 69 74 65 5f E...indexsqlite_ +| 3792: 61 75 74 6f 69 6e 64 65 78 5f 74 31 5f 73 65 67 autoindex_t1_seg +| 3808: 64 69 72 5f 31 74 31 5f 73 65 67 64 69 72 05 00 dir_1t1_segdir.. +| 3824: 00 00 08 00 00 00 00 66 03 07 17 23 23 01 81 13 .......f...##... +| 3840: 74 61 62 6c 65 74 31 5f 73 65 67 6d 65 6e 74 73 tablet1_segments +| 3856: 74 31 5f 73 65 67 6d 65 6e 74 73 03 43 52 45 41 t1_segments.CREA +| 3872: 54 45 20 54 41 42 4c 45 20 27 74 31 5f 73 65 67 TE TABLE 't1_seg +| 3888: 6d 65 6e 74 73 27 28 62 6c 6f 63 6b 69 64 20 49 ments'(blockid I +| 3904: 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b NTEGER PRIMARY K +| 3920: 45 59 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 29 5c EY, block BLOB). +| 3936: 02 07 17 21 21 01 81 03 74 61 62 6c 65 74 31 5f ...!!...tablet1_ +| 3952: 63 6f 6e 74 65 6e 74 74 31 5f 63 6f 6e 74 65 6e contentt1_conten +| 3968: 74 02 43 52 45 41 54 45 20 54 41 42 4c 45 20 27 t.CREATE TABLE ' +| 3984: 74 31 5f 63 6f 6e 74 65 6e 74 27 28 64 6f 63 69 t1_content'(doci +| 4000: 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 d INTEGER PRIMAR +| 4016: 59 20 4b 45 59 2c 20 27 63 30 61 27 29 41 01 06 Y KEY, 'c0a')A.. +| 4032: 17 11 11 08 71 74 61 62 6c 65 74 31 74 31 43 52 ....qtablet1t1CR +| 4048: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 EATE VIRTUAL TAB +| 4064: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 34 LE t1 USING fts4 +| 4080: 28 61 2c 70 72 65 66 69 78 3d 27 31 2c 32 27 29 (a,prefix='1,2') +| page 2 offset 4096 +| 0: 0d 00 00 00 08 0e 1f 00 0f c4 0f 7c 0f 34 0f 07 ...........|.4.. +| 16: 0e c3 0e 97 0e 63 0e 1f 00 00 00 00 00 00 00 00 .....c.......... +| 3600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 ...............B +| 3616: 08 04 00 81 09 73 75 6e 74 20 69 6e 20 63 75 6c .....sunt in cul +| 3632: 70 61 20 71 75 68 20 6f 66 66 69 63 69 61 20 64 pa quh officia d +| 3648: 65 73 65 72 75 6e 74 20 6d 6f 6c 6c 69 74 20 61 eserunt mollit a +| 3664: 6e 69 6d 20 69 64 20 65 73 74 20 6c 61 62 6f 72 nim id est labor +| 3680: 75 6d 2e 32 07 03 01 6b 45 78 63 65 70 74 65 75 um.2...kExcepteu +| 3696: 72 20 73 69 6e 74 20 6f 63 63 61 65 63 61 74 20 r sint occaecat +| 3712: 63 75 70 69 64 61 74 61 74 20 6e 6f 6e 20 70 72 cupidatat non pr +| 3728: 6f 69 64 65 6e 74 2c 2a 06 03 00 5b 63 69 6c 6c oident,*...[cill +| 3744: 75 6d 20 64 6f 6c 6f 72 65 20 65 75 20 66 75 67 um dolore eu fug +| 3760: 69 61 74 20 6e 75 6c 6c 61 20 70 61 72 69 61 74 iat nulla pariat +| 3776: 75 72 2e 43 05 04 00 81 09 44 75 69 73 20 61 75 ur.C.....Duis au +| 3792: 74 65 20 69 72 75 72 65 20 64 6f 6c 6f 72 20 69 te irure dolor i +| 3808: 6e 20 72 65 70 72 65 68 65 6e 64 65 72 69 74 20 n reprehenderit +| 3824: 69 6e 20 76 6f 6c 75 70 74 61 74 65 20 76 65 6c in voluptate vel +| 3840: 69 74 20 65 73 73 65 2b 14 03 00 5d 6e 69 73 69 it esse+...]nisi +| 3856: 20 75 74 20 61 6c 69 71 75 69 70 20 65 78 20 65 ut aliquip ex e +| 3872: 61 20 63 6f 6d 6d 6f 64 6f 20 63 6f 6e 73 65 71 a commodo conseq +| 3888: 75 61 74 2e 46 03 04 00 81 11 55 74 20 65 6e 69 uat.F.....Ut eni +| 3904: 6d 20 61 63 20 6d 69 6e 69 6d 20 76 65 6e 69 61 m ac minim venia +| 3920: 6d 2c 20 71 75 69 73 20 6e 6f 73 74 72 75 64 20 m, quis nostrud +| 3936: 65 78 65 72 63 69 74 61 74 69 6f 6e 20 75 6c 6c exercitation ull +| 3952: 61 6d 63 6f 20 6c 61 62 6f 72 69 73 46 02 04 00 amco laborisF... +| 3968: 81 11 73 65 64 20 64 6f 20 65 69 75 73 6d 6f 64 ..sed do eiusmod +| 3984: 20 74 65 6d 70 6f 72 20 69 6e 63 69 64 69 64 75 tempor incididu +| 4000: 6e 74 20 75 74 20 6c 61 62 6f 72 65 20 65 74 20 nt ut labore et +| 4016: 64 6f 6c 6f 72 65 20 6d 61 67 6e 61 20 61 6c 69 dolore magna ali +| 4032: 71 75 61 2e 3a 01 03 00 7b 4c 6f 72 65 6d 20 69 qua.:....Lorem i +| 4048: 70 73 75 6d 20 64 6f 6c 6f 72 20 73 69 74 20 61 psum dolor sit a +| 4064: 6d 65 74 2c 20 63 6f 6e 73 65 63 74 65 74 75 72 met, consectetur +| 4080: 20 61 64 69 70 69 73 63 69 6e 67 20 65 6c 69 74 adipiscing elit +| page 3 offset 8192 +| 0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ................ +| page 4 offset 12288 +| 0: 0d 00 00 00 03 0a a6 00 0d 57 0c 4a 0a a6 00 00 .........W.J.... +| 2720: 00 00 00 00 00 00 83 21 03 08 02 08 08 08 17 86 .......!........ +| 2736: 30 08 00 30 20 34 30 32 00 02 61 64 06 01 08 00 0..0 402..ad.... +| 2752: 02 04 00 01 01 6c 06 02 0c 00 02 04 00 01 01 6d .....l.........m +| 2768: 03 01 06 00 01 01 6e 03 08 09 00 01 01 75 03 05 ......n......u.. +| 2784: 03 00 00 02 63 69 03 06 01 00 01 01 6f 07 01 07 ....ci......o... +| 2800: 00 03 07 03 00 01 01 75 06 07 05 00 01 04 00 00 .......u........ +| 2816: 02 64 65 03 08 07 00 01 01 6f 0d 01 04 00 01 03 .de......o...... +| 2832: 09 00 03 05 00 01 03 00 01 01 75 03 05 02 00 00 ..........u..... +| 2848: 02 65 61 03 04 06 00 01 01 69 03 02 04 00 01 01 .ea......i...... +| 2864: 6c 03 01 09 00 01 01 6e 03 03 03 00 01 01 73 06 l......n......s. +| 2880: 05 0b 00 03 0b 00 01 01 74 03 02 09 00 01 01 75 ........t......u +| 2896: 03 06 04 00 01 01 78 09 03 09 00 01 05 00 03 02 ......x......... +| 2912: 00 00 02 66 75 03 06 05 00 00 02 69 64 03 08 0a ...fu......id... +| 2928: 00 01 01 6e 0a 02 06 00 03 06 04 00 03 03 00 01 ...n............ +| 2944: 01 70 03 01 13 00 01 01 72 03 05 04 00 00 02 6c .p......r......l +| 2960: 61 09 02 08 00 01 0b 00 05 0c 00 01 01 6f 03 01 a............o.. +| 2976: 02 00 00 02 6d 61 03 02 0b 00 01 01 69 03 03 05 ....ma......i... +| 2992: 00 01 01 6f 03 08 08 00 00 02 6e 69 03 04 02 00 ...o......ni.... +| 3008: 01 01 6f 06 03 08 00 04 06 00 01 01 75 03 06 06 ..o.........u... +| 3024: 00 00 02 6f 63 03 07 04 00 01 01 66 03 08 06 00 ...oc......f.... +| 3040: 00 02 70 61 03 06 07 00 01 01 72 03 07 07 00 00 ..pa......r..... +| 3056: 02 71 75 06 03 07 00 05 05 00 00 02 72 65 03 05 .qu.........re.. +| 3072: 07 00 00 02 73 65 03 02 02 00 01 01 69 06 01 05 ....se......i... +| 3088: 00 06 03 00 01 01 75 03 08 02 00 00 02 74 65 03 ......u......te. +| 3104: 03 05 00 00 02 72 bc 03 03 0a 00 01 01 74 09 02 .....r.......t.. +| 3120: 07 00 01 02 00 01 03 00 00 02 76 65 06 03 06 00 ..........ve.... +| 3136: 02 0a 00 01 01 6f 03 05 09 00 82 0a 02 08 02 08 .....o.......... +| 3152: 08 08 17 84 02 04 00 30 20 32 35 31 00 01 61 13 .......0 251..a. +| 3168: 01 06 04 00 01 0c 00 01 04 00 01 04 00 01 03 00 ................ +| 3184: 03 09 00 00 01 63 10 01 07 00 03 07 03 00 02 02 .....c.......... +| 3200: 00 01 05 00 01 04 00 00 01 64 11 01 04 00 01 03 .........d...... +| 3216: 09 00 03 02 05 00 01 03 00 02 07 00 00 01 65 1b ..............e. +| 3232: 01 09 00 01 04 07 00 01 03 08 00 01 05 03 00 01 ................ +| 3248: 0b 00 01 04 00 01 02 00 01 0b 00 00 01 66 03 06 .............f.. +| 3264: 05 00 00 01 69 0f 01 03 00 01 06 00 02 04 04 04 ....i........... +| 3280: 00 03 03 09 00 00 01 6c 0c 01 02 00 01 08 00 01 .......l........ +| 3296: 0b 00 05 0c 00 00 01 6d 09 02 0b 00 01 05 00 05 .......m........ +| 3312: 08 00 00 01 6e 0c 03 08 00 01 02 00 02 06 00 01 ....n........... +| 3328: 06 00 f0 01 6f 06 07 04 00 01 06 00 00 01 70 06 ....o.........p. +| 3344: 06 07 00 01 07 00 00 01 71 06 03 07 00 05 05 00 ........q....... +| 3360: 00 01 72 03 05 08 00 00 01 73 0c 01 05 00 01 02 ..r......s...... +| 3376: 00 05 03 00 01 02 00 00 01 74 03 02 05 00 00 01 .........t...... +| 3392: 75 0a 02 07 00 01 02 0a 00 01 03 00 00 01 76 07 u.............v. +| 3408: 03 06 00 02 09 03 00 85 26 01 08 08 08 08 08 17 ........&....... +| 3424: 8a 3e 30 21 36 36 35 00 02 61 64 03 03 04 00 02 .>0!665..ad..... +| 3440: 08 69 70 69 73 63 69 6e 67 03 01 08 00 01 05 6c .ipiscing......l +| 3456: 69 71 75 61 03 02 0c 00 05 02 69 70 03 04 04 00 iqua......ip.... +| 3472: 01 03 6d 65 74 03 01 06 00 01 03 6e 69 6d 03 08 ..met......nim.. +| 3488: 09 00 01 03 75 74 65 03 05 03 00 00 06 63 69 6c ....ute......cil +| 3504: 6c 75 6d 03 06 02 00 01 06 6f 6d 6d 6f 64 6f 03 lum......ommodo. +| 3520: 04 07 00 02 09 6e 73 65 63 74 65 74 75 72 03 01 .....nsectetur.. +| 3536: 07 00 05 04 71 75 61 74 03 04 08 00 01 04 75 6c ....quat......ul +| 3552: 70 61 03 08 04 00 02 07 70 69 64 61 74 61 74 03 pa......pidatat. +| 3568: 07 05 00 00 08 64 65 73 65 72 75 6e 74 03 08 07 .....deserunt... +| 3584: 00 01 01 6f 03 02 03 00 02 03 6c 6f 72 06 01 04 ...o......lor... +| 3600: 00 04 05 00 05 01 65 06 02 0a 00 04 03 00 01 03 ......e......... +| 3616: 75 69 73 03 05 02 00 00 02 65 61 03 04 06 00 01 uis......ea..... +| 3632: 06 69 75 73 6d 6f 64 03 02 04 00 01 03 6c 69 74 .iusmod......lit +| 3648: 03 01 09 00 01 03 6e 69 6d 03 03 03 00 01 03 73 ......nim......s +| 3664: 73 65 03 05 0b 00 02 01 74 03 08 0b 00 01 01 74 se......t......t +| 3680: 03 02 09 00 01 01 75 03 06 04 00 01 01 78 03 04 ......u......x.. +| 3696: 05 00 02 07 63 65 70 74 65 75 72 03 07 02 00 02 ....cepteur..... +| 3712: 0a 65 72 63 69 74 61 74 69 6f 6e 03 03 09 00 00 .ercitation..... +| 3728: 06 66 75 67 69 61 74 03 06 05 00 00 02 69 64 03 .fugiat......id. +| 3744: 08 0a 00 01 01 6e 07 05 06 04 00 03 03 00 02 08 .....n.......... +| 3760: 63 69 64 69 64 75 6e 74 03 02 06 00 01 04 70 73 cididunt......ps +| 3776: 75 6d 03 01 03 00 01 04 72 75 72 65 03 05 04 00 um......rure.... +| 3792: 00 06 6c 61 62 6f 72 65 03 02 08 00 05 02 69 73 ..labore......is +| 3808: 03 03 0b 00 05 02 75 6d 03 08 0c 00 01 04 6f 72 ......um......or +| 3824: 65 6d 03 01 02 00 00 05 6d 61 67 6e 61 03 02 0b em......magna... +| 3840: 00 01 04 69 6e 69 6d 03 03 05 00 01 05 6f 6c 6c ...inim......oll +| 3856: 69 74 03 08 08 00 00 04 6e 69 73 69 03 04 02 00 it......nisi.... +| 3872: 01 02 6f 6e 03 07 06 00 02 05 73 74 72 75 64 03 ..on......strud. +| 3888: 03 08 00 01 04 75 6c 6c 61 03 06 06 00 00 08 6f .....ulla......o +| 3904: 63 63 61 65 63 61 74 03 07 04 00 01 06 66 66 69 ccaecat......ffi +| 3920: 63 69 61 03 08 06 00 00 08 70 61 72 69 61 74 75 cia......pariatu +| 3936: 72 03 06 07 00 01 07 72 6f 69 64 65 6e 74 03 07 r......roident.. +| 3952: 07 00 00 03 71 75 69 03 08 05 00 03 01 73 03 03 ....qui......s.. +| 3968: 07 00 00 0d 72 65 41 72 65 68 65 6e 64 65 72 69 ....reArehenderi +| 3984: 74 03 05 07 00 00 03 73 65 64 03 02 02 00 01 03 t......sed...... +| 4000: 69 6e 74 03 07 03 00 02 01 74 03 01 05 00 01 03 int......t...... +| 4016: 75 6e 74 03 08 02 00 00 06 74 65 6d 70 6f 72 03 unt......tempor. +| 4032: 02 05 00 00 07 75 6c 6c 61 6d 63 6f 03 03 0a 00 .....ullamco.... +| 4048: 01 01 74 09 02 07 00 01 02 00 01 03 00 00 05 76 ..t............v +| 4064: 65 6c 69 74 03 05 0a 00 02 04 6e 69 61 6d 03 03 elit......niam.. +| 4080: 06 00 01 08 70 6c 75 70 74 61 74 65 03 05 09 00 ....pluptate.... +| page 5 offset 16384 +| 0: 0a 00 00 00 03 0f eb 00 0f fb 0f f3 0f eb 00 00 ................ +| 4064: 00 00 00 00 00 00 00 00 00 00 00 07 04 02 08 01 ................ +| 4080: 08 00 03 07 04 0a 98 01 04 00 02 04 04 08 08 09 ................ +| page 6 offset 20480 +| 0: 0d 00 00 00 08 0f d0 00 0f fa 0f f4 0f ee 0f e8 ................ +| 16: 0f e2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +| 4048: 04 08 03 00 0e 0b 04 07 03 00 0e 06 04 06 03 00 ................ +| 4064: 0e 06 04 05 03 00 0e 0a 04 04 03 00 0e 07 04 03 ................ +| 4080: 03 00 0e 0a 04 02 03 00 0e 0b 04 01 03 00 0e 08 ................ +| page 7 offset 24576 +| 0: 0d 00 00 00 01 0f f7 00 0f f7 00 00 00 00 00 00 ................ +| 4080: 00 00 00 00 00 00 00 07 00 03 00 14 08 45 b5 03 .............E.. +| end crash-afecd03c862e58.db +}]} {} + +do_execsql_test 20.1 { + BEGIN; + WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<10) + INSERT INTO t1(a) SELECT randomblob(3000) FROM c; +} + +do_execsql_test 20.2 { + INSERT INTO t1(t1) VALUES('optimize'); +} + +#------------------------------------------------------------------------- +reset_db +do_test 21.0 { + sqlite3 db {} + db deserialize [decode_hexdb { +| size 28672 pagesize 4096 filename crash-18cc014e42e828.db +| page 1 offset 0 +| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. +| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 07 .....@ ........ +| 32: 00 00 00 02 00 00 00 01 00 00 00 07 00 00 00 04 ................ +| 96: 00 00 00 00 0d 0e b1 00 06 0d a4 00 0f 8d 0f 21 ...............! +| 112: 0e b9 0d c8 0e 7e 0d a4 00 00 00 00 00 00 00 00 .....~.......... +| 3488: 00 00 00 00 22 07 06 17 11 11 01 31 74 61 62 6c ...........1tabl +| 3504: 66 74 32 74 32 07 43 52 45 41 54 45 20 54 41 42 ft2t2.CREATE TAB +| 3520: 4c 45 20 74 32 28 78 29 81 33 05 07 17 1f 1f 01 LE t2(x).3...... +| 3536: 82 35 74 61 62 6c 65 74 31 5f 73 75 67 64 69 72 .5tablet1_sugdir +| 3552: 74 31 5f 73 65 67 64 69 72 05 43 52 45 41 54 45 t1_segdir.CREATE +| 3568: 20 54 41 42 4c 45 20 27 74 31 5f 73 65 67 64 69 TABLE 't1_segdi +| 3584: 72 27 28 6c 65 76 65 6c 20 49 4e 54 45 47 45 52 r'(level INTEGER +| 3600: 2c 69 64 78 20 49 4e 54 45 47 45 52 2c 73 74 61 ,idx INTEGER,sta +| 3616: 72 74 5f 62 6c 6f 63 6b 20 49 4e 54 46 47 45 52 rt_block INTFGER +| 3632: 2c 6c 65 61 76 65 73 5f 65 6e 64 5f 62 6c 6f 63 ,leaves_end_bloc +| 3648: 6b 20 49 4e 54 45 47 45 52 2c 65 6e 64 5f 62 6c k INTEGER,end_bl +| 3664: 6f 63 6b 20 49 4e 54 45 47 45 62 2c 72 6f 6f 74 ock INTEGEb,root +| 3680: 20 42 4c 4f 42 2c 50 52 49 4d 41 52 59 20 4b 45 BLOB,PRIMARY KE +| 3696: 59 28 6c 65 76 65 6c 2c 20 69 64 78 29 29 31 06 Y(level, idx))1. +| 3712: 06 17 45 1f 01 00 69 6e 64 65 78 73 71 6c 69 74 ..E...indexsqlit +| 3728: 65 5f 61 75 74 6f 69 6e 64 65 78 5f 74 31 5f 73 e_autoindex_t1_s +| 3744: 65 67 64 69 72 5f 31 74 31 5f 73 65 67 64 69 72 egdir_1t1_segdir +| 3760: 06 0f c7 00 08 00 00 00 00 66 04 07 17 23 23 01 .........f...##. +| 3776: 81 13 74 61 62 6c 65 74 31 5f 73 65 67 6d 65 6e ..tablet1_segmen +| 3792: 74 73 74 31 5f 73 65 67 6d 65 6e 74 73 04 43 52 tst1_segments.CR +| 3808: 45 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 73 EATE TABLE 't1_s +| 3824: 65 67 6d 65 6e 74 73 27 28 62 6c 6f 63 6b 69 64 egments'(blockid +| 3840: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 INTEGER PRIMARY +| 3856: 20 4b 45 59 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 KEY, block BLOB +| 3872: 29 6a 03 07 17 21 21 01 81 1f 74 61 62 6c 65 74 )j...!!...tablet +| 3888: 31 5f 63 6f 6e 74 65 6e 74 74 31 5f 63 6f 6e 74 1_contentt1_cont +| 3904: 65 6e 74 03 43 52 45 41 54 45 20 54 41 42 4c 45 ent.CREATE TABLE +| 3920: 20 27 74 31 5f 63 6f 6e 74 65 6e 74 27 28 64 6f 't1_content'(do +| 3936: 63 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d cid INTEGER PRIM +| 3952: 41 52 59 20 4b 45 59 2c 20 27 63 30 61 27 2c 20 ARY KEY, 'c0a', +| 3968: 27 63 31 62 27 2c 20 27 63 32 63 27 29 38 02 06 'c1b', 'c2c')8.. +| 3984: 17 11 11 08 5f 74 61 62 6c 65 74 31 74 31 43 52 ...._tablet1t1CR +| 4000: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 EATE VIRTUAL TAB +| 4016: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 33 LE t1 USING fts3 +| 4032: 28 61 2c 62 2c 63 29 00 00 00 00 00 00 00 00 00 (a,b,c)......... +| page 3 offset 8192 +| 0: 0d 00 00 00 25 0b 48 00 0f d8 0f af 0f 86 0f 74 ....%.H........t +| 16: 0f 61 0f 4e 0f 2f 0f 0f 0e ef 0e d7 0e be 0e a5 .a.N./.......... +| 32: 0e 8d 0e 74 0e 5b 0e 40 0e 24 0e 08 0d ef 0d d5 ...t.[.@.$...... +| 48: 0d bb 0d a0 0d 84 0d 68 0d 4e 0d 35 0d 1b 0c fb .......h.N.5.... +| 64: 0c da 0c b9 0c 99 0c 78 0c 57 0c 3e 0c 24 00 00 .......x.W.>.$.. +| 2880: 00 00 00 00 00 00 00 00 81 3f 25 06 00 82 7f 00 .........?%..... +| 2896: 00 43 4f 4d 50 49 4c 45 52 3d 67 63 63 2d 35 2e .COMPILER=gcc-5. +| 2912: 34 23 00 20 32 30 31 36 30 36 30 39 20 44 45 42 4#. 20160609 DEB +| 2928: 55 47 20 45 4e 41 42 4c 45 20 44 42 53 54 41 54 UG ENABLE DBSTAT +| 2944: 20 56 54 41 42 20 45 4e 41 42 4c 45 20 46 43 53 VTAB ENABLE FCS +| 2960: 34 20 45 4e 41 42 4c 45 20 46 54 53 35 20 45 4e 4 ENABLE FTS5 EN +| 2976: 41 42 4c 45 20 47 45 4f 50 4f 4c 59 20 45 4e 41 ABLE GEOPOLY ENA +| 2992: 42 4c 45 20 4a 53 4f 4e 31 20 45 4e 41 42 4c 45 BLE JSON1 ENABLE +| 3008: 20 4d 45 4d 53 59 53 35 20 45 4e 41 42 4c 45 20 MEMSYS5 ENABLE +| 3024: 52 54 52 45 45 20 4d 41 58 20 4d 45 4d 4f 52 59 RTREE MAX MEMORY +| 3040: 3d 35 30 30 30 30 30 30 30 20 4f 4d 49 54 20 4c =50000000 OMIT L +| 3056: 4f 41 44 20 45 58 54 45 4e 53 49 4f 4e 20 54 48 OAD EXTENSION TH +| 3072: 52 45 41 44 53 41 46 45 3d 30 18 24 05 00 25 0f READSAFE=0.$..%. +| 3088: 19 54 48 52 45 41 44 53 41 46 45 3d 30 58 42 49 .THREADSAFE=0XBI +| 3104: 4e 41 52 59 18 23 05 00 25 0f 19 54 48 52 45 41 NARY.#..%..THREA +| 3120: 44 53 41 46 45 3d 30 58 4e 4f 43 41 53 45 17 22 DSAFE=0XNOCASE.. +| 3136: 05 00 25 0f 17 54 48 52 45 41 44 53 41 46 45 3d ..%..THREADSAFE= +| 3152: 30 58 52 54 52 49 4d 20 21 05 00 33 0f 19 4f 4d 0XRTRIM !..3..OM +| 3168: 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 4f IT LOAD EXTENSIO +| 3184: 4e 58 42 49 4e 41 52 59 1f 20 05 00 33 0f 19 4f NXBINARY. ..3..O +| 3200: 4d 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 MIT LOAD EXTENSI +| 3216: 4f 4e 58 4e 4f 43 41 53 45 1e 1f 05 00 33 0f 17 ONXNOCASE....3.. +| 3232: 4f 4d 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 OMIT LOAD EXTENS +| 3248: 49 4f 4e 58 52 54 52 49 4d 1f 1e 05 00 33 0f 19 IONXRTRIM....3.. +| 3264: 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 30 30 MAX MEMORY=50000 +| 3280: 30 30 30 58 42 49 4e 41 52 59 1f 1d 05 00 33 0f 000XBINARY....3. +| 3296: 19 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 30 .MAX MEMORY=5000 +| 3312: 30 30 30 30 58 4e 4f 43 41 53 45 1e 1c 05 00 33 0000XNOCASE....3 +| 3328: 0f 17 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 ..MAX MEMORY=500 +| 3344: 30 30 30 30 30 58 52 54 52 49 4d 18 1b 05 00 25 00000XRTRIM....% +| 3360: 0f 19 45 4e 41 42 4c 45 20 52 54 52 45 45 58 42 ..ENABLE RTREEXB +| 3376: 49 4e 41 52 59 18 1a 05 00 25 0f 19 45 4e 41 42 INARY....%..ENAB +| 3392: 4c 45 20 52 54 52 45 45 58 4e 4f 43 41 53 45 17 LE RTREEXNOCASE. +| 3408: 19 05 00 25 0f 17 45 4e 41 42 4c 45 20 52 54 52 ...%..ENABLE RTR +| 3424: 45 45 58 52 54 52 49 4d 1a 18 05 00 29 0f 19 45 EEXRTRIM....)..E +| 3440: 4e 41 42 4c 45 20 4d 45 4d 53 59 53 35 58 42 49 NABLE MEMSYS5XBI +| 3456: 4e 41 52 59 1a 17 05 00 29 0f 19 45 4e 41 42 4c NARY....)..ENABL +| 3472: 45 20 4d 45 4d 53 59 53 35 58 4e 4f 43 41 53 45 E MEMSYS5XNOCASE +| 3488: 19 16 05 00 29 0f 17 45 4e 41 42 4c 45 20 4d 45 ....)..ENABLE ME +| 3504: 4d 53 59 53 35 58 52 54 52 49 4d 18 15 05 00 25 MSYS5XRTRIM....% +| 3520: 0f 19 45 4e 41 42 4c 45 20 4a 53 4f 4e 31 58 42 ..ENABLE JSON1XB +| 3536: 49 4e 41 52 59 18 14 05 00 25 0f 19 45 4e 41 42 INARY....%..ENAB +| 3552: 4c 45 20 4a 53 4f 4e 31 58 4e 4f 43 41 53 45 17 LE JSON1XNOCASE. +| 3568: 13 05 00 25 0f 17 45 4e 41 42 4c 45 20 4a 53 4f ...%..ENABLE JSO +| 3584: 4e 31 58 52 54 52 49 4d 1a 12 05 00 29 0f 19 45 N1XRTRIM....)..E +| 3600: 4e 41 42 4c 45 20 47 45 4f 50 4f 4c 59 58 42 39 NABLE GEOPOLYXB9 +| 3616: 4e 41 52 59 1a 11 05 00 29 0f 19 45 4e 41 1e 4c NARY....)..ENA.L +| 3632: 45 20 47 45 4f 50 4f 4c 59 58 4e 4f 43 41 53 45 E GEOPOLYXNOCASE +| 3648: 19 10 05 00 29 0f 17 45 4e 41 42 4c 45 20 47 45 ....)..ENABLE GE +| 3664: 4f 50 4f 4c 59 58 52 54 52 49 4d 17 0f 05 00 23 OPOLYXRTRIM....# +| 3680: 0f 19 45 4e 41 42 4c 45 20 46 54 53 35 58 42 49 ..ENABLE FTS5XBI +| 3696: 4e 41 52 59 17 0e 05 00 23 0f 19 45 4e 41 42 4c NARY....#..ENABL +| 3712: 45 20 46 54 53 35 58 4e 4f 43 41 53 45 16 0d 05 E FTS5XNOCASE... +| 3728: 00 23 0f 16 45 4e 41 42 4c 45 20 46 54 53 35 58 .#..ENABLE FTS5X +| 3744: 52 54 52 49 4d 17 0c 05 00 23 0f 19 45 4e 41 42 RTRIM....#..ENAB +| 3760: 4c 45 20 46 54 53 34 58 42 48 4e 41 52 59 17 0b LE FTS4XBHNARY.. +| 3776: 05 00 23 0e 19 45 4e 41 42 4c 45 20 46 54 53 35 ..#..ENABLE FTS5 +| 3792: 58 4e 4f 43 40 53 45 16 0a 05 00 23 0f 17 45 4e XNOC@SE....#..EN +| 3808: 41 42 4c 45 20 46 54 53 34 58 52 2e 52 49 4d 1e ABLE FTS4XR.RIM. +| 3824: 09 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS +| 3840: 54 41 54 20 56 54 41 42 58 42 49 4e 41 52 59 1e TAT VTABXBINARY. +| 3856: 08 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS +| 3872: 54 41 54 20 56 54 41 42 58 4e 4f 43 41 53 45 1d TAT VTABXNOCASE. +| 3888: 07 05 00 31 0f 17 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS +| 3904: 54 41 54 20 56 54 41 42 58 52 54 52 49 4d 11 06 TAT VTABXRTRIM.. +| 3920: 05 00 17 0f 19 44 45 42 55 47 58 42 49 4e 41 52 .....DEBUGXBINAR +| 3936: 59 11 05 05 00 17 0f 19 44 45 42 55 47 58 4e 4f Y.......DEBUGXNO +| 3952: 43 41 53 45 10 04 05 00 17 0f 17 44 45 42 55 47 CASE.......DEBUG +| 3968: 58 52 54 52 49 4d 27 03 05 00 43 0f 19 43 4f 4d XRTRIM'...C..COM +| 3984: 50 49 4c 45 52 3d 67 63 63 2d 35 2e 34 2e 30 20 PILER=gcc-5.4.0 +| 4000: 32 30 31 36 30 36 30 39 58 42 49 da 41 52 59 27 20160609XBI.ARY' +| 4016: 02 05 00 43 0f 19 43 4f 4d 50 49 4c 45 52 3d 67 ...C..COMPILER=g +| 4032: 63 63 2d 35 2e 34 2e 30 20 32 30 31 36 30 36 30 cc-5.4.0 2016060 +| 4048: 39 58 4e 4f 43 41 53 45 26 01 05 00 43 0f 17 43 9XNOCASE&...C..C +| 4064: 4f 4d 50 49 4c 45 52 3d 67 63 63 2d 00 00 00 00 OMPILER=gcc-.... +| page 5 offset 16384 +| 0: 0d 00 00 00 02 0b a0 00 0c ad 0b a0 00 00 00 00 ................ +| 2976: 82 0a 02 08 08 09 08 08 17 84 06 30 20 32 35 33 ...........0 253 +| 2992: 00 01 30 04 25 06 1b 00 00 08 32 30 31 36 30 36 ..0.%.....201606 +| 3008: 30 3a 03 25 07 00 00 01 34 03 25 05 00 00 01 35 0:.%....4.%....5 +| 3024: 03 25 04 00 01 07 30 30 30 30 30 30 30 03 25 1a .%....0000000.%. +| 3040: 00 00 08 63 6f 6d 70 69 6c 65 72 03 25 02 00 00 ...compiler.%... +| 3056: 06 64 62 73 74 61 74 03 25 0a 00 01 04 65 62 75 .dbstat.%....ebu +| 3072: 67 03 25 08 00 00 06 65 6e 61 62 6c 65 09 25 09 g.%....enable.%. +| 3088: 05 04 04 04 04 04 00 01 08 78 74 65 6e 73 69 6f .........xtensio +| 3104: 6e 03 25 1d 00 00 04 66 74 73 34 03 25 0d 00 03 n.%....fts4.%... +| 3120: 01 35 03 25 0f 00 00 03 57 63 63 03 25 03 00 01 .5.%....Wcc.%... +| 3136: 06 65 6f 70 6f 6c 79 03 25 11 00 00 05 6a 73 6f .eopoly.%....jso +| 3152: 6e 31 03 25 13 00 00 04 6c 6f 61 64 03 25 1c 00 n1.%....load.%.. +| 3168: 00 03 6d 61 78 03 25 18 00 01 05 65 6d 6f 72 79 ..max.%....emory +| 3184: 03 25 19 00 03 04 73 79 73 35 03 25 15 00 00 04 .%....sys5.%.... +| 3200: 6f 6d 69 74 03 25 1b 00 00 05 72 74 72 65 65 03 omit.%....rtree. +| 3216: 25 17 00 00 0a 74 68 72 65 64 64 73 61 66 65 03 %....threddsafe. +| 3232: 25 1e 00 00 04 76 74 61 62 03 25 0b 00 86 50 01 %....vtab.%...P. +| 3248: 08 08 08 08 08 17 8d 12 30 20 38 33 35 00 01 30 ........0 835..0 +| 3264: 12 01 06 00 01 06 00 01 06 00 1f 03 00 01 03 00 ................ +| 3280: 01 03 00 00 08 32 30 31 36 30 36 30 39 09 01 07 .....20160609... +| 3296: 00 01 07 00 01 07 00 00 01 34 09 01 05 00 01 05 .........4...... +| 3312: 00 01 05 00 00 01 35 09 01 04 00 01 04 00 01 04 ......5......... +| 3328: 00 01 07 30 30 30 30 30 30 30 09 1c 04 00 01 04 ...0000000...... +| 3344: 00 01 04 00 00 06 62 69 6e 61 72 79 3c 03 01 02 ......binary<... +| 3360: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3376: 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 ................ +| 3392: 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 03 ................ +| 3408: 01 02 02 00 03 01 02 02 00 00 08 63 6f 6d 70 69 ...........compi +| 3424: 6c 65 72 09 01 02 00 01 02 00 01 02 00 00 06 64 ler............d +| 3440: 62 73 74 61 74 09 07 03 00 01 03 00 01 03 00 01 bstat........... +| 3456: 04 65 62 75 67 09 04 02 00 01 02 00 01 02 00 00 .ebug........... +| 3472: 06 65 6e 61 62 6c 65 3f 07 02 00 01 02 00 01 12 .enable?........ +| 3488: 00 01 02 00 01 02 00 01 02 00 01 02 0e 97 02 00 ................ +| 3504: 01 02 00 01 cb 00 01 02 00 01 02 00 01 02 10 01 ................ +| 3520: 02 00 01 02 00 01 02 01 01 02 00 01 02 00 01 02 ................ +| 3536: 00 01 02 00 01 02 00 01 08 78 74 65 6e 73 69 6f .........xtensio +| 3552: 6e 09 1f 04 00 01 04 00 01 04 00 00 04 66 74 73 n............fts +| 3568: 34 09 0a 03 00 01 03 00 01 03 00 03 01 35 09 0d 4............5.. +| 3584: 03 00 01 03 00 01 03 00 00 03 67 63 63 09 01 03 ..........gcc... +| 3600: 00 01 03 00 01 03 00 01 06 65 6f 70 6f 6c 79 09 .........eopoly. +| 3616: 10 03 00 01 03 00 01 03 00 00 05 6a 73 6f 6e 31 ...........json1 +| 3632: 09 13 03 00 01 03 00 01 03 00 00 04 6c 6f 61 64 ............load +| 3648: 09 1f 03 00 01 03 00 01 03 00 00 03 6d 61 78 09 ............max. +| 3664: 1c 02 00 01 02 00 01 02 00 01 05 65 6d 6f 72 79 ...........emory +| 3680: 09 1c 03 00 01 03 00 01 03 00 03 04 73 79 73 35 ............sys5 +| 3696: 09 16 03 00 01 03 00 01 03 00 00 06 6e 6f 63 61 ............noca +| 3712: 73 65 3c 02 01 02 02 00 03 01 02 02 00 03 01 02 se<............. +| 3728: 02 00 03 01 02 02 00 03 01 02 02 00 ab 01 02 02 ................ +| 3744: 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 ................ +| 3760: 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 00 ................ +| 3776: 04 6f 6d 69 74 09 1f 12 00 01 02 00 01 02 00 00 .omit........... +| 3792: 05 72 74 72 65 65 09 19 03 00 01 03 00 01 03 00 .rtree.......... +| 3808: 03 02 69 6d 3c 01 01 02 02 00 03 01 02 02 00 03 ..im<........... +| 3824: 01 02 02 00 03 01 02 02 00 03 01 02 02 00 03 01 ................ +| 3840: 02 02 00 03 01 02 01 f0 03 01 02 02 00 03 01 02 ................ +| 3856: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3872: 00 00 0a 74 68 72 65 61 64 73 61 66 65 09 22 02 ...threadsafe... +| 3888: 00 01 02 00 02 02 00 00 04 76 74 61 62 09 07 04 .........vtab... +| 3904: 00 01 04 00 01 04 00 00 01 78 b4 01 01 01 08 a2 .........x...... +| 3920: 00 01 01 01 02 00 01 01 01 02 00 02 01 01 02 00 ................ +| 3936: 01 01 01 01 ff f1 01 01 02 00 01 01 01 02 00 01 ................ +| 3952: 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 ................ +| 3968: 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 ................ +| 3984: 02 00 01 01 01 02 00 01 01 01 02 01 01 01 01 02 ................ +| 4000: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| 4016: 01 01 01 02 00 01 01 01 02 00 01 01 01 03 00 01 ................ +| 4032: 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 ................ +| 4048: 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 ................ +| 4064: 02 00 01 01 01 02 00 01 02 01 02 00 01 01 01 02 ................ +| 4080: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| page 6 offset 20480 +| 0: 0a 00 00 00 02 0f f5 00 0f fb 0f f5 00 00 00 00 ................ +| 4080: 00 00 00 00 00 05 04 08 09 01 02 04 04 08 08 09 ................ +| page 7 offset 24576 +| 0: 0d 00 00 00 05 0f b8 00 00 00 00 00 00 00 00 00 ................ +| 4016: 00 00 00 00 00 00 00 00 0d 05 02 23 61 75 74 6f ...........#auto +| 4032: 6d 65 72 67 65 3d 35 0d 04 02 23 6d 65 72 67 65 merge=5...#merge +| 4048: 3d 31 30 30 2c 38 11 03 02 2b 69 6e 74 65 67 72 =100,8...+integr +| 4064: 69 74 79 2d 63 68 65 63 6b 09 02 02 1b 72 65 62 ity-check....reb +| 4080: 75 69 6c 64 0a 01 02 1d 00 00 00 00 00 00 00 00 uild............ +| end crash-18cc014e42e828.db +}]} {} + +breakpoint +do_catchsql_test 21.1 { + SELECT offsets(t1) FROM t1 WHERE t1 MATCH 'R*'; +} {1 {database disk image is malformed}} + +#------------------------------------------------------------------------- +reset_db +do_test 22.0 { + sqlite3 db {} + db deserialize [decode_hexdb { +| size 28672 pagesize 4096 filename crash-b794c89d922ac9.db +| page 1 offset 0 +| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. +| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 07 .....@ ........ +| 32: 00 00 00 02 00 00 00 01 00 00 00 07 00 00 00 00 ................ +| 96: 00 00 00 00 0d 0e b1 00 06 0d a4 00 0f 8d 0f 21 ...............! +| 112: 0e b9 0d c8 0e 7e 0d a4 00 00 00 00 00 00 00 00 .....~.......... +| 3488: 00 00 00 00 22 07 06 17 11 11 01 31 74 61 62 6c ...........1tabl +| 3504: 65 74 32 74 32 07 43 52 45 41 54 45 20 54 41 42 et2t2.CREATE TAB +| 3520: 4c 45 20 74 32 28 78 29 81 33 05 07 17 1f 1f 01 LE t2(x).3...... +| 3536: 82 35 74 61 61 6c 65 74 31 5f 73 65 67 64 69 72 .5taalet1_segdir +| 3552: 74 31 5f 73 65 67 64 69 72 05 43 52 45 41 54 45 t1_segdir.CREATE +| 3568: 20 54 41 42 4c 45 20 27 74 31 5f 73 65 67 64 69 TABLE 't1_segdi +| 3584: 72 27 28 6c 65 76 65 6c 20 49 4e 54 45 47 45 52 r'(level INTEGER +| 3600: 2c 69 64 78 20 49 4e 54 45 47 45 52 2c 73 74 61 ,idx INTEGER,sta +| 3616: 72 74 5f 62 6c 6f 63 6b 20 49 4e 54 45 47 45 52 rt_block INTEGER +| 3632: 2c 6c 65 61 76 65 73 5f 65 6e 64 5f 62 6c 6f 63 ,leaves_end_bloc +| 3648: 6b 20 49 4e 54 45 47 45 52 2c 65 6e 64 5f 62 6c k INTEGER,end_bl +| 3664: 6f 63 6b 20 49 4e 54 45 47 45 52 2c 72 6f 6f 74 ock INTEGER,root +| 3680: 20 42 4c 4f 42 2c 50 52 49 4d 41 52 59 20 4b 45 BLOB,PRIMARY KE +| 3696: 59 28 6c 65 76 65 6c 2c 20 69 64 78 29 29 31 06 Y(level, idx))1. +| 3712: 06 17 45 1f 01 00 69 6e 64 65 78 73 71 6c 69 74 ..E...indexsqlit +| 3728: 65 5f 61 75 74 6f 69 6e 64 65 78 5f 74 31 5f 73 e_autoindex_t1_s +| 3744: 65 67 64 69 72 5f 31 74 31 5f 73 65 67 64 69 72 egdir_1t1_segdir +| 3760: 06 0f c7 00 08 00 00 00 00 66 04 07 17 23 23 01 .........f...##. +| 3776: 81 13 74 61 62 6c 65 74 31 5f 73 65 67 6d 65 6e ..tablet1_segmen +| 3792: 74 73 74 31 5f 73 65 67 6d 65 6e 74 73 04 43 52 tst1_segments.CR +| 3808: 45 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 73 EATE TABLE 't1_s +| 3824: 65 67 6d 65 6e 74 73 27 28 62 6c 6f 63 6b 69 64 egments'(blockid +| 3840: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 INTEGER PRIMARY +| 3856: 20 4b 45 59 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 KEY, block BLOB +| 3872: 29 6a 03 07 17 21 21 01 81 1f 74 61 62 6c 65 74 )j...!!...tablet +| 3888: 31 5f 63 6f 6e 84 65 6e 74 74 31 5f 63 6f 6e 74 1_con.entt1_cont +| 3904: 65 6e 74 03 43 52 45 41 54 45 20 54 41 42 4c 45 ent.CREATE TABLE +| 3920: 20 27 74 31 5f 63 6f 6e 74 65 6e 74 27 28 64 6f 't1_content'(do +| 3936: 63 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d cid INTEGER PRIM +| 3952: 41 52 59 20 4b 45 59 2c 20 27 63 30 61 27 2c 20 ARY KEY, 'c0a', +| 3968: 27 63 31 62 27 2c 20 27 63 32 63 27 29 38 02 06 'c1b', 'c2c')8.. +| 3984: 17 11 11 08 5f 74 61 62 6c 65 74 31 74 31 43 52 ...._tablet1t1CR +| 4000: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 EATE VIRTUAL TAB +| 4016: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 33 LE t1 USING fts3 +| 4032: 28 61 2c 62 2c 63 29 00 00 00 00 00 00 00 00 00 (a,b,c)......... +| page 3 offset 8192 +| 0: 0d 00 00 00 25 0b 48 00 0f d8 0f af 0f 86 0f 74 ....%.H........t +| 16: 0f 61 0f 4e 0f 2f 0f 0f 0e ef 0e d7 0e be 0e a5 .a.N./.......... +| 32: 0e 8d 0e 74 0e 5b 0e 40 0e 24 0e 08 0d ef 0d d5 ...t.[.@.$...... +| 48: 0d bb 0d a0 0d 84 0d 68 0d 4f 0d 35 0d 1b 0c fb .......h.O.5.... +| 64: 0c da 0c b9 0c 99 0c 78 0c 57 0c 3e 0c 24 0c 0a .......x.W.>.$.. +| 80: 0b 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .H.............. +| 2880: 00 00 00 00 00 00 00 00 81 3f 25 06 00 82 7f 00 .........?%..... +| 2896: 00 43 4f 4d 50 49 4c 45 52 3d 67 63 63 2d 35 2e .COMPILER=gcc-5. +| 2912: 34 2e 30 20 32 30 31 36 30 36 30 39 20 44 45 42 4.0 20160609 DEB +| 2928: 55 47 20 45 4e 41 42 4c 45 20 44 42 53 54 41 54 UG ENABLE DBSTAT +| 2944: 20 56 54 41 42 20 45 4e 41 42 4c 45 20 46 54 53 VTAB ENABLE FTS +| 2960: 34 20 45 4e 41 42 4c 45 20 46 54 53 35 20 45 4e 4 ENABLE FTS5 EN +| 2976: 41 42 4c 45 20 47 45 4f 50 4f 4c 59 20 45 4e 41 ABLE GEOPOLY ENA +| 2992: 42 4c 45 20 4a 53 4f 4e 31 20 45 4e 41 42 4c 45 BLE JSON1 ENABLE +| 3008: 20 4d 45 4d 53 49 53 35 20 45 4e 41 42 4c 45 20 MEMSIS5 ENABLE +| 3024: 52 54 52 45 45 20 4d 41 58 20 4d 45 4d 4f 52 59 RTREE MAX MEMORY +| 3040: 3d 35 30 30 30 30 30 30 30 20 4f 4d 49 54 20 4c =50000000 OMIT L +| 3056: 4f 41 44 20 45 58 54 45 4e 53 49 4f 4e 20 54 48 OAD EXTENSION TH +| 3072: 52 45 41 44 53 41 46 45 3d 30 18 24 05 00 26 0f READSAFE=0.$..&. +| 3088: 19 54 48 52 45 41 44 53 41 46 45 3d 30 58 42 49 .THREADSAFE=0XBI +| 3104: 4e 41 52 59 18 23 05 00 25 0f 19 54 48 52 45 41 NARY.#..%..THREA +| 3120: 44 53 41 46 45 3d 30 58 4e 4f 43 41 53 45 17 22 DSAFE=0XNOCASE.. +| 3136: 05 00 25 0f 17 54 48 52 45 41 44 53 41 46 45 3d ..%..THREADSAFE= +| 3152: 30 58 52 54 52 49 4d 1f 21 05 00 33 0f 19 4f 4d 0XRTRIM.!..3..OM +| 3168: 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 4f IT LOAD EXTENSIO +| 3184: 4e 58 42 49 4e 41 52 59 1f 20 05 00 33 0f 19 4f NXBINARY. ..3..O +| 3200: 4d 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 MIT LOAD EXTENSI +| 3216: 4f 4e 58 4e 4f 43 41 53 45 1e 1f 05 00 33 0f 17 ONXNOCASE....3.. +| 3232: 4f 4d 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 OMIT LOAD EXTENS +| 3248: 49 4f 4e 58 52 54 52 49 4d 1f 1e 05 00 33 0f 19 IONXRTRIM....3.. +| 3264: 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 30 30 MAX MEMORY=50000 +| 3280: 30 30 30 58 42 49 4e 41 52 59 1f 1d 05 00 33 0f 000XBINARY....3. +| 3296: 19 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 30 .MAX MEMORY=5000 +| 3312: 30 30 30 30 58 4e 4f 43 41 53 45 1e 1c 05 00 33 0000XNOCASE....3 +| 3328: 0f 17 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 ..MAX MEMORY=500 +| 3344: 30 30 30 30 30 58 52 54 52 49 4d 18 1b 05 00 25 00000XRTRIM....% +| 3360: 0f 19 45 4e 41 42 4c 45 20 52 54 52 45 45 58 42 ..ENABLE RTREEXB +| 3376: 49 4e 41 52 59 18 1a 05 00 25 0f 19 45 4e 41 42 INARY....%..ENAB +| 3392: 4c 55 20 52 54 52 45 45 58 4e 4f 43 41 53 45 17 LU RTREEXNOCASE. +| 3408: 19 05 00 25 0f 17 45 4e 41 42 4c 45 20 52 54 52 ...%..ENABLE RTR +| 3424: 45 45 58 52 54 52 49 4d 1a 18 05 00 29 0f 19 45 EEXRTRIM....)..E +| 3440: 4e 41 42 4c 45 20 4d 45 4d 53 59 53 35 58 42 49 NABLE MEMSYS5XBI +| 3456: 4e 41 52 59 1a 17 05 00 29 0f 19 45 4e 41 42 4c NARY....)..ENABL +| 3472: 45 20 4d 45 4d 53 59 53 35 58 4e 4f 43 41 53 45 E MEMSYS5XNOCASE +| 3488: 19 16 05 00 29 0f 17 45 4e 41 42 4c 45 20 4d 45 ....)..ENABLE ME +| 3504: 4d 53 59 53 35 58 52 54 52 49 4d 18 15 05 00 25 MSYS5XRTRIM....% +| 3520: 0f 19 45 4e 41 42 4c 45 20 4a 53 4f 4e 31 58 42 ..ENABLE JSON1XB +| 3536: 49 4e 41 52 59 18 14 05 00 25 0f 19 45 4e 41 42 INARY....%..ENAB +| 3552: 4c 45 20 4a 53 4f 4e 31 58 4e 4f 43 41 53 45 17 LE JSON1XNOCASE. +| 3568: 13 05 00 25 0f 17 45 4e 41 42 4c 45 20 4a 53 4f ...%..ENABLE JSO +| 3584: 4e 31 58 52 54 52 49 4d 1a 12 05 00 29 0f 19 45 N1XRTRIM....)..E +| 3600: 4e 41 42 4c 45 20 47 45 4f 50 4f 4c 59 58 42 49 NABLE GEOPOLYXBI +| 3616: 4e 41 52 59 1a 11 05 00 29 0f 19 45 4e 41 42 4c NARY....)..ENABL +| 3632: 45 20 47 45 4f 50 4f 4c 59 58 4e 4f 43 41 53 45 E GEOPOLYXNOCASE +| 3648: 19 10 05 00 29 0f 17 45 4e 41 42 4c 45 20 47 45 ....)..ENABLE GE +| 3664: 4f 50 4f 4c 59 58 52 54 52 49 4d 17 0f 05 00 23 OPOLYXRTRIM....# +| 3680: 0f 19 45 4e 41 42 4c 45 20 46 54 53 35 58 42 49 ..ENABLE FTS5XBI +| 3696: 4e 41 52 59 17 0e 05 00 23 0f 19 45 4e 41 42 4c NARY....#..ENABL +| 3712: 45 20 46 54 53 35 58 4e 4f 43 41 53 45 16 0d 05 E FTS5XNOCASE... +| 3728: 00 23 0f 17 45 4e 41 42 4c 45 20 46 54 53 35 58 .#..ENABLE FTS5X +| 3744: 52 54 52 49 4d 17 0c 05 00 23 0f 19 45 4e 41 42 RTRIM....#..ENAB +| 3760: 4c 45 19 46 54 53 34 58 42 49 4e 41 52 59 17 0b LE.FTS4XBINARY.. +| 3776: 05 00 23 0f 19 45 4e 41 42 4e f5 20 46 54 53 34 ..#..ENABN. FTS4 +| 3792: 58 4e 4f 43 41 53 45 16 0a 05 00 23 0f 17 45 4e XNOCASE....#..EN +| 3808: 41 42 4c 45 20 46 54 53 34 58 52 54 52 49 4d 1e ABLE FTS4XRTRIM. +| 3824: 09 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS +| 3840: 54 41 54 20 56 54 41 42 58 42 49 4e 41 52 59 1e TAT VTABXBINARY. +| 3856: 08 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS +| 3872: 54 41 54 20 56 54 41 42 58 4e 4f 43 41 53 45 1d TAT VTABXNOCASE. +| 3888: 07 05 00 31 0f 17 45 4e 41 42 4c 45 20 44 41 53 ...1..ENABLE DAS +| 3904: 54 41 54 20 56 54 41 42 58 52 54 52 49 4d 11 06 TAT VTABXRTRIM.. +| 3920: 05 00 17 0f 19 44 45 42 55 47 58 42 49 4e 41 52 .....DEBUGXBINAR +| 3936: 59 11 05 05 00 17 0f 19 44 45 42 55 47 58 4e 4f Y.......DEBUGXNO +| 3952: 43 41 53 45 10 04 05 00 17 ab 17 44 45 42 55 47 CASE.......DEBUG +| 3968: 48 52 54 52 49 4d 27 03 05 00 43 0f 19 43 4f 4d HRTRIM'...C..COM +| 3984: 50 49 4c 45 52 3d 67 63 63 2d 35 2e 34 2e 30 20 PILER=gcc-5.4.0 +| 4000: 32 30 31 36 30 36 30 39 58 43 49 4e 41 52 59 27 20160609XCINARY' +| 4016: 02 04 00 43 0f 19 43 4f 4d 50 49 4c 45 52 3d 67 ...C..COMPILER=g +| 4032: 63 63 2d 35 2e 34 2e 30 20 32 30 31 36 30 36 30 cc-5.4.0 2016060 +| 4048: 39 58 4e 4f 43 41 53 45 26 01 05 00 43 0f 17 43 9XNOCASE&...C..C +| 4064: 4f 4d 50 49 4c 45 52 3d 67 63 63 2d 35 2e 34 2e OMPILER=gcc-5.4. +| 4080: 30 20 32 30 31 36 30 36 30 39 58 52 54 52 49 4d 0 20160609XRTRIM +| page 4 offset 12288 +| 0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +| page 5 offset 16384 +| 0: 0d 00 00 00 02 0b a0 00 0c ad 0b a0 00 00 00 00 ................ +| 2976: 82 0a 02 08 08 09 08 08 17 84 06 30 20 32 35 33 ...........0 253 +| 2992: 00 01 30 04 25 06 1b 00 00 08 32 30 31 36 30 36 ..0.%.....201606 +| 3008: 30 39 03 25 07 00 00 01 34 03 25 05 00 00 01 35 09.%....4.%....5 +| 3024: 03 25 04 00 01 07 30 30 30 30 30 30 30 03 25 1a .%....0000000.%. +| 3040: 00 00 08 63 6f 6d 70 69 6c 65 72 03 25 02 00 00 ...compiler.%... +| 3056: 06 64 62 73 74 61 74 03 25 0a 00 01 04 65 62 75 .dbstat.%....ebu +| 3072: 67 03 25 08 00 00 06 65 6e 61 62 6c 65 09 25 09 g.%....enable.%. +| 3088: 05 04 04 04 04 04 00 01 08 78 74 65 6e 73 69 6f .........xtensio +| 3104: 6e 03 25 1d 00 00 04 66 74 73 34 03 25 0d 00 03 n.%....fts4.%... +| 3120: 01 35 03 25 0f 00 00 03 67 63 63 03 25 03 00 01 .5.%....gcc.%... +| 3136: 06 65 6f 70 6f 6c 79 03 25 11 00 00 05 6a 73 6f .eopoly.%....jso +| 3152: 6e 31 03 25 13 00 00 04 6c 6f 61 64 03 25 1c 00 n1.%....load.%.. +| 3168: 00 03 6d 61 78 03 25 18 00 01 05 65 6d 6f 72 79 ..max.%....emory +| 3184: 03 25 19 00 03 04 73 79 73 35 03 25 15 00 00 04 .%....sys5.%.... +| 3200: 6f 6d 69 74 03 25 1b 00 00 05 72 74 72 65 65 03 omit.%....rtree. +| 3216: 25 17 00 00 0a 74 68 72 65 61 64 73 61 66 65 03 %....threadsafe. +| 3232: 25 1e 00 00 04 76 74 61 62 03 25 0b 00 86 50 01 %....vtab.%...P. +| 3248: 08 08 08 08 08 17 8d 12 30 20 38 33 35 00 01 30 ........0 835..0 +| 3264: 12 01 06 00 01 06 00 01 06 00 1f 03 00 01 03 00 ................ +| 3280: 01 03 00 00 08 32 30 31 36 30 36 30 39 09 01 07 .....20160609... +| 3296: 00 01 07 00 01 07 00 00 01 34 09 01 05 00 01 05 .........4...... +| 3312: 00 01 05 00 00 01 35 09 01 04 00 01 04 00 01 04 ......5......... +| 3328: 00 01 07 30 30 30 30 30 30 30 09 1c 04 00 01 04 ...0000000...... +| 3344: 00 01 04 00 00 06 62 69 6e 61 72 79 3c 03 01 02 ......binary<... +| 3360: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3376: 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 ................ +| 3392: 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 03 ................ +| 3408: 01 02 02 00 03 01 02 02 00 00 08 63 6f 6d 70 69 ...........compi +| 3424: 6c 65 72 09 01 02 00 01 02 00 01 02 00 00 06 64 ler............d +| 3440: 62 73 74 61 74 09 07 03 00 01 03 00 01 03 00 01 bstat........... +| 3456: 04 65 62 75 67 09 04 02 00 01 02 00 01 02 00 00 .ebug........... +| 3472: 06 65 6e 61 62 6c 65 3f 07 02 00 01 02 00 01 02 .enable?........ +| 3488: 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 ................ +| 3504: 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 ................ +| 3520: 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 ................ +| 3536: 00 01 02 00 01 02 00 01 08 78 74 65 6e 73 69 6f .........xtensio +| 3552: 6e 09 1f 04 00 01 04 00 01 04 00 00 04 66 74 73 n............fts +| 3568: 34 09 0a 03 d4 01 02 ff 01 03 00 03 01 35 09 0d 4............5.. +| 3584: 03 00 01 03 00 01 03 00 00 03 67 64 d3 09 01 03 ..........gd.... +| 3600: 00 01 03 00 01 03 00 01 06 65 6f 70 6f 6c 79 09 .........eopoly. +| 3616: 10 03 00 01 03 00 01 03 00 00 05 6a 73 6f 6e 31 ...........json1 +| 3632: 19 13 03 00 01 03 00 01 03 00 00 04 6c 6f 61 64 ............load +| 3648: 09 1f 03 00 01 03 00 01 03 00 00 03 6d 61 78 09 ............max. +| 3664: 1c 02 00 01 02 00 01 02 00 01 05 65 6d 6f 72 79 ...........emory +| 3680: 09 1c 03 00 01 03 00 01 03 00 03 04 73 79 73 35 ............sys5 +| 3696: 09 16 03 00 01 03 00 01 03 00 00 06 6e 6f 63 61 ............noca +| 3712: 73 65 3c 02 01 02 02 00 03 01 02 02 00 03 01 02 se<............. +| 3728: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3744: 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 ................ +| 3760: 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 00 ................ +| 3776: 04 6f 6d 69 74 09 1f 02 00 01 12 00 01 02 00 00 .omit........... +| 3792: 05 72 74 72 65 65 09 19 03 00 01 07 80 00 f3 00 .rtree.......... +| 3808: 03 02 69 6d 3c 01 01 02 02 00 03 01 02 02 00 03 ..im<........... +| 3824: 01 02 02 00 03 01 02 02 00 03 01 02 02 00 03 01 ................ +| 3840: 02 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 ................ +| 3856: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3872: 00 00 0a 74 68 72 65 61 64 73 61 66 65 09 22 02 ...threadsafe... +| 3888: 00 01 02 00 01 02 00 00 04 76 74 61 62 09 07 04 .........vtab... +| 3904: 00 01 04 00 01 04 00 00 01 78 b4 01 01 01 01 02 .........x...... +| 3920: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| 3936: 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 ................ +| 3952: 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 ................ +| 3968: 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 ................ +| 3984: 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 ................ +| 4000: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| 4016: 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 ................ +| 4032: 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 ................ +| 4048: 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 ................ +| 4064: 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 ................ +| 4080: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| page 6 offset 20480 +| 0: 0a 00 00 00 02 0f f5 00 0f fb 0f f5 00 00 00 00 ................ +| 4080: 00 00 00 00 00 05 04 08 09 01 02 04 04 08 08 09 ................ +| page 7 offset 24576 +| 0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +| 4016: 00 00 00 00 00 00 00 00 0d 05 02 23 61 75 74 6f ...........#auto +| 4032: 6d 65 72 67 65 3d 35 0d 04 02 23 6d 65 72 67 65 merge=5...#merge +| 4048: 3d 31 30 30 2c 38 11 03 02 2b 69 6e 74 65 67 72 =100,8...+integr +| 4064: 69 74 79 2d 63 68 65 63 6b 09 02 02 1b 72 65 62 ity-check....reb +| end crash-b794c89d922ac9.db +}]} {} + +do_catchsql_test 22.1 { + SELECT snippet(t1,'', '', '--',-1,01)==0 + FROM t1 WHERE a MATCH 'rtree OR json1rtree OR json1'; +} {0 {0 0 0 0 0 0 0}} + +#------------------------------------------------------------------------- +reset_db +do_test 23.0 { + sqlite3 db {} + db deserialize [decode_hexdb { +.open --hexdb +| size 28672 pagesize 4096 filename crash-670b15f2955a36.db +| page 1 offset 0 +| 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. +| 16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 07 .....@ ........ +| 32: 00 00 00 02 10 00 00 01 00 00 00 07 00 00 00 00 ................ +| 96: 00 00 00 00 0d 0e b1 00 06 0d a4 00 0f 8d 0f 21 ...............! +| 112: 0e b9 0d c8 0e 7e 0d a4 00 00 00 00 00 00 00 00 .....~.......... +| 3488: 00 00 00 00 22 07 06 17 11 11 01 31 74 61 62 6c ...........1tabl +| 3504: 65 74 32 74 32 07 43 52 45 41 54 45 20 54 41 42 et2t2.CREATE TAB +| 3520: 4c 45 20 74 32 28 78 29 81 33 05 07 17 1f 1f 01 LE t2(x).3...... +| 3536: 82 35 74 61 62 6c 65 74 31 5f 73 65 67 64 69 72 .5tablet1_segdir +| 3552: 74 31 5f 73 65 67 64 69 72 05 43 52 45 41 54 45 t1_segdir.CREATE +| 3568: 20 54 41 42 4c 45 20 27 74 31 5f 73 65 67 64 69 TABLE 't1_segdi +| 3584: 72 27 28 6c 65 76 65 6c 20 49 4e 54 45 47 45 52 r'(level INTEGER +| 3600: 2c 69 64 78 20 49 4e 54 45 47 45 52 2c 73 74 61 ,idx INTEGER,sta +| 3616: 72 74 5f 62 6c 6f 63 6b 20 49 4e 54 45 47 45 52 rt_block INTEGER +| 3632: 2c 6c 65 61 76 65 73 5f 65 6e 64 5f 62 6c 6f 63 ,leaves_end_bloc +| 3648: 6b 20 49 4e 54 45 47 45 52 2c 65 6e 64 5f 62 6c k INTEGER,end_bl +| 3664: 6f 63 6b 20 49 4e 54 45 47 45 52 2c 72 6f 6f 74 ock INTEGER,root +| 3680: 20 42 4c 4f 42 2c 50 52 49 4d 41 52 59 20 4b 45 BLOB,PRIMARY KE +| 3696: 59 28 6c 65 76 65 6c 2c 20 69 64 78 29 29 31 06 Y(level, idx))1. +| 3712: 06 17 45 1f 01 00 69 6e 64 65 78 73 71 6c 69 74 ..E...indexsqlit +| 3728: 65 5f 61 75 74 6f 69 6e 64 65 78 5f 74 31 5f 73 e_autoindex_t1_s +| 3744: 65 67 64 69 72 5f 31 74 31 5f 73 65 67 64 69 72 egdir_1t1_segdir +| 3760: 06 0f c7 00 08 00 00 00 00 66 04 07 17 23 23 01 .........f...##. +| 3776: 81 13 74 61 62 6c 75 74 31 5f 73 65 67 6d 65 6e ..tablut1_segmen +| 3792: 74 73 74 31 5f 73 65 67 6d 65 6e 74 73 04 43 52 tst1_segments.CR +| 3808: 45 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 73 EATE TABLE 't1_s +| 3824: 65 67 6d 65 6e 74 73 27 28 62 6c 6f 63 6b 69 64 egments'(blockid +| 3840: 20 49 4e 54 45 47 45 42 20 50 52 49 4d 41 52 59 INTEGEB PRIMARY +| 3856: 20 4b 45 59 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 KEY, block BLOB +| 3872: 29 6a 03 07 17 21 21 01 81 1f 74 61 62 6c 65 74 )j...!!...tablet +| 3888: 31 5f 63 6f 6e 74 65 6e 74 74 31 5f 63 6f 6e 74 1_contentt1_cont +| 3904: 65 6e 74 03 43 52 45 41 54 45 20 54 41 42 4c 45 ent.CREATE TABLE +| 3920: 20 27 74 31 5f 63 6f 6e 74 65 6e 74 27 28 64 6f 't1_content'(do +| 3936: 63 69 64 20 49 4e 54 45 47 45 52 20 50 52 49 4d cid INTEGER PRIM +| 3952: 41 52 59 20 4b 45 59 2c 20 27 63 30 61 27 2c 20 ARY KEY, 'c0a', +| 3968: 27 63 31 62 27 2c 20 27 63 32 63 27 29 38 02 06 'c1b', 'c2c')8.. +| 3984: 17 11 11 08 5f 74 61 62 6c 65 74 31 74 31 43 52 ...._tablet1t1CR +| 4000: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 EATE VIRTUAL TAB +| 4016: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 33 LE t1 USING fts3 +| 4032: 28 61 2c 62 2c 63 29 00 00 00 00 00 00 00 00 00 (a,b,c)......... +| page 3 offset 8192 +| 0: 0d 00 00 00 25 0b 48 01 0f d8 00 2f 0f 86 0f 74 ....%.H..../...t +| 16: 0f 61 0f 4e 0f 2f 0f 0f 0e ef 0e d7 0e be 0e a5 .a.N./.......... +| 32: 0e 8d 0e 74 0e 5a fe 40 0e 24 0e 08 0d ef 0d d5 ...t.Z.@.$...... +| 48: 0d bb 0d a0 0d 84 0d 68 0d 4f 81 35 0d 1b 0c fb .......h.O.5.... +| 64: 0c da 0c b9 0c 99 0c 78 0c 57 0c 3e 00 00 00 00 .......x.W.>.... +| 2880: 00 00 00 00 00 00 00 00 81 3f 25 06 00 82 7f 10 .........?%..... +| 2896: 00 43 4f 4d 50 49 4c 45 52 3d 67 63 63 2d 35 2e .COMPILER=gcc-5. +| 2912: 34 2e 30 20 32 30 31 36 30 36 30 39 20 44 45 42 4.0 20160609 DEB +| 2928: 55 47 20 45 4e 41 42 4c 45 20 44 42 53 54 41 54 UG ENABLE DBSTAT +| 2944: 20 56 54 41 42 20 45 4e 41 42 4c 45 20 46 54 53 VTAB ENABLE FTS +| 2960: 34 20 45 4e 41 42 4c 45 20 46 54 53 35 20 45 4e 4 ENABLE FTS5 EN +| 2976: 41 42 4c 45 20 47 45 4f 50 4f 4c 59 20 45 4e 41 ABLE GEOPOLY ENA +| 2992: 42 4c 45 20 4a 53 4f 4e 31 20 45 4e 41 42 4c 45 BLE JSON1 ENABLE +| 3008: 20 4d 45 4d 53 59 53 35 20 45 4e 41 42 4c 45 20 MEMSYS5 ENABLE +| 3024: 52 54 52 45 45 20 4d 41 58 20 4d 45 4d 4f 52 59 RTREE MAX MEMORY +| 3040: 3d 35 30 30 30 30 30 30 30 20 4f 4d 49 54 20 4c =50000000 OMIT L +| 3056: 4f 41 44 20 45 58 54 45 4e 53 49 4f 4e 20 54 48 OAD EXTENSION TH +| 3072: 52 45 41 44 53 41 46 45 3d 30 18 24 05 00 35 0f READSAFE=0.$..5. +| 3088: 19 54 48 52 45 41 44 53 41 46 45 3d 30 58 42 49 .THREADSAFE=0XBI +| 3104: 4e 41 52 59 18 23 55 00 25 0f 19 54 48 52 45 41 NARY.#U.%..THREA +| 3120: 44 53 41 46 45 3d 30 58 4e 4f 43 41 53 45 17 22 DSAFE=0XNOCASE.. +| 3136: 05 00 25 0f 17 54 48 52 45 41 44 53 41 46 45 3d ..%..THREADSAFE= +| 3152: 30 58 52 54 52 49 4d 1f 21 05 00 33 0f 19 4f 4d 0XRTRIM.!..3..OM +| 3168: 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 4f IT LOAD EXTENSIO +| 3184: 4e 58 42 49 4e 41 52 59 1f 20 05 00 33 0f 19 4f NXBINARY. ..3..O +| 3200: 4d 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 49 MIT LOAD EXTENSI +| 3216: 4f 4e 58 4e 4f 43 41 53 45 1e 1f 05 00 33 0f 17 ONXNOCASE....3.. +| 3232: 4f 4d 49 54 20 4c 4f 41 44 20 45 58 54 45 4e 53 OMIT LOAD EXTENS +| 3248: 49 4f 4e 58 52 54 52 49 4d 1f 1e 05 00 33 0f 19 IONXRTRIM....3.. +| 3264: 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 30 30 MAX MEMORY=50000 +| 3280: 30 30 30 58 42 49 4e 41 52 59 1f 1d 05 00 33 0f 000XBINARY....3. +| 3296: 19 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 30 .MAX MEMORY=5000 +| 3312: 30 30 30 30 58 4e 4f 43 41 53 45 1e 1c 05 00 33 0000XNOCASE....3 +| 3328: 0f 17 4d 41 58 20 4d 45 4d 4f 52 59 3d 35 30 30 ..MAX MEMORY=500 +| 3344: 30 30 30 30 30 58 52 54 52 49 4d 18 1b 05 00 25 00000XRTRIM....% +| 3360: 0f 19 45 4e 41 42 4c 44 20 52 54 52 45 45 58 42 ..ENABLD RTREEXB +| 3376: 49 4e 41 52 59 18 1a 05 00 25 0f 19 45 4e 41 42 INARY....%..ENAB +| 3392: 4c 45 20 52 54 52 45 45 58 4e 4f 43 41 53 45 17 LE RTREEXNOCASE. +| 3408: 19 05 00 24 0f 17 45 4e 40 42 4c 45 20 52 54 52 ...$..EN@BLE RTR +| 3424: 45 45 58 52 54 52 49 4d 1a 18 05 00 29 0f 19 45 EEXRTRIM....)..E +| 3440: 4e 41 42 4c 45 20 4d 45 4d 53 59 53 35 58 42 49 NABLE MEMSYS5XBI +| 3456: 4e 41 52 59 1a 17 05 00 29 0f 19 45 4d 41 42 4c NARY....)..EMABL +| 3472: 45 20 4d 45 4d 53 59 53 35 58 4e 4f 43 41 4c 45 E MEMSYS5XNOCALE +| 3488: 19 16 05 00 29 0f 17 45 4e 41 42 4c 45 20 4d 45 ....)..ENABLE ME +| 3504: 4e 53 59 53 35 58 52 54 52 49 4d 18 15 05 00 25 NSYS5XRTRIM....% +| 3520: 0f 19 45 4e 41 42 4c 45 20 4a 53 4f 4e 31 58 42 ..ENABLE JSON1XB +| 3536: 49 4e 41 52 59 18 14 05 00 25 0f 19 45 4e 41 42 INARY....%..ENAB +| 3552: 4c 45 20 4a 53 4f 4e 31 58 4e 4f 43 41 53 45 17 LE JSON1XNOCASE. +| 3568: 13 05 00 25 0f 17 45 4e 41 42 4c 45 20 4a 53 4f ...%..ENABLE JSO +| 3584: 4e 31 58 52 54 5f b9 4d 1a 12 05 00 29 0f 19 45 N1XRT_.M....)..E +| 3600: 4e 41 42 4c 45 20 47 45 4f 50 31 4c 59 58 42 49 NABLE GEOP1LYXBI +| 3616: 4e 41 52 58 1a 11 05 00 29 0f 19 45 4e 41 42 4c NARX....)..ENABL +| 3632: 45 20 47 45 4f 50 4f 4c 59 58 4e 4f 43 41 53 45 E GEOPOLYXNOCASE +| 3648: 19 10 05 00 29 0f 17 45 4e 41 42 4c 45 20 57 45 ....)..ENABLE WE +| 3664: 4f 50 4f 4c 59 48 52 54 52 49 4d 17 0f 05 00 23 OPOLYHRTRIM....# +| 3680: 0f 19 45 4e 41 42 4c 45 20 46 54 53 35 58 42 49 ..ENABLE FTS5XBI +| 3696: 4e 41 53 59 17 0e 05 00 23 0f 19 45 4e 40 42 4b NASY....#..EN@BK +| 3712: 45 20 46 54 53 35 58 4e 4f 43 41 53 45 16 0d 05 E FTS5XNOCASE... +| 3728: 00 23 0f 17 45 4e 41 42 4c 45 20 46 54 53 35 58 .#..ENABLE FTS5X +| 3744: 52 54 52 49 4d 17 0c 05 00 23 0f 19 45 4e 41 42 RTRIM....#..ENAB +| 3760: 4c 45 20 46 54 94 34 58 42 49 4e 41 52 59 17 0b LE FT.4XBINARY.. +| 3776: 05 00 23 0f 19 45 4e 41 42 4c 43 70 46 54 53 34 ..#..ENABLCpFTS4 +| 3792: 58 4e 4f 43 41 53 45 16 0a 05 00 23 0f 17 45 4e XNOCASE....#..EN +| 3808: 41 42 4c 45 20 46 54 53 34 58 52 54 52 49 4d 1e ABLE FTS4XRTRIM. +| 3824: 09 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS +| 3840: 54 41 54 20 56 54 41 42 58 42 49 4e 41 52 59 1e TAT VTABXBINARY. +| 3856: 08 05 00 31 0f 19 45 4e 41 42 4c 45 20 44 32 53 ...1..ENABLE D2S +| 3872: 54 41 54 20 56 54 41 42 58 4e 4f 43 41 53 45 1d TAT VTABXNOCASE. +| 3888: 07 05 00 31 0f 17 45 4e 41 42 4c 45 20 44 42 53 ...1..ENABLE DBS +| 3904: 54 41 54 20 56 54 41 42 58 52 54 52 49 4d 11 06 TAT VTABXRTRIM.. +| 3920: 05 0b 27 0f 19 44 45 42 55 47 58 42 49 4e 41 52 ..'..DEBUGXBINAR +| 3936: 59 11 05 05 00 17 0f 19 44 45 42 55 47 58 4e 4f Y.......DEBUGXNO +| 3952: 43 41 53 45 10 03 05 00 17 0f 17 44 45 42 55 47 CASE.......DEBUG +| 3968: 58 52 54 52 49 4d 27 03 05 00 43 0f 19 43 4f 4d XRTRIM'...C..COM +| 3984: 50 49 4c 45 52 3d 67 63 63 2d 35 2e 34 2e 30 20 PILER=gcc-5.4.0 +| 4000: 32 30 31 36 30 36 30 39 58 42 49 4e 41 52 59 27 20160609XBINARY' +| 4016: 02 05 00 43 0f 19 43 4f 4d 50 49 4c 35 52 3d 67 ...C..COMPIL5R=g +| 4032: 63 63 2d 35 2e 34 2e 30 20 32 30 31 36 30 36 30 cc-5.4.0 2016060 +| 4048: 39 58 4e 4f 43 41 53 45 26 01 05 00 43 0f 02 43 9XNOCASE&...C..C +| 4064: 4f 4d 50 49 4c 45 52 3d 67 63 63 2d 35 2e 34 2e OMPILER=gcc-5.4. +| 4080: 30 20 32 30 31 36 30 36 30 39 58 00 00 00 00 00 0 20160609X..... +| page 5 offset 16384 +| 0: 0d 00 00 00 02 0b a0 00 0c ad 0b a0 00 00 00 00 ................ +| 2976: 82 0a 02 08 08 09 08 08 17 84 06 30 20 32 35 33 ...........0 253 +| 2992: 00 01 30 04 25 06 1b 00 00 08 32 30 31 36 30 36 ..0.%.....201606 +| 3008: 30 39 03 25 07 00 00 01 34 03 25 05 00 00 01 35 09.%....4.%....5 +| 3024: 03 25 04 00 01 07 30 30 30 30 30 30 30 08 55 1a .%....0000000.U. +| 3040: 00 00 08 63 6f 6d 70 69 6c 65 72 03 25 02 00 00 ...compiler.%... +| 3056: 06 64 62 73 74 61 74 03 25 0a 00 01 04 65 61 75 .dbstat.%....eau +| 3072: 67 03 25 08 00 00 06 65 6e 61 62 6c 65 09 25 09 g.%....enable.%. +| 3088: 05 04 04 04 04 04 00 01 08 78 74 65 6e 73 69 6f .........xtensio +| 3104: 6e 03 25 1d 00 00 04 66 74 73 34 03 25 0d 00 03 n.%....fts4.%... +| 3120: 01 35 03 25 0f 00 00 0c 97 63 63 03 25 03 00 01 .5.%.....cc.%... +| 3136: 06 65 6f 70 6f 6c 7a 03 25 11 00 00 05 6a 73 6f .eopolz.%....jso +| 3152: 6e 31 03 25 13 00 00 04 6c 6f 61 64 03 25 1c 00 n1.%....load.%.. +| 3168: 00 03 6d 61 78 03 25 18 00 01 05 65 6d 6f 72 79 ..max.%....emory +| 3184: 03 25 3d f0 03 04 73 79 73 35 03 25 15 00 00 04 .%=...sys5.%.... +| 3200: 6f 6d 69 74 03 25 1b 00 00 05 72 74 72 65 65 03 omit.%....rtree. +| 3216: 25 17 00 00 0a 74 68 72 65 61 64 73 61 66 65 03 %....threadsafe. +| 3232: 25 1e 00 00 04 76 74 61 62 03 25 0b 00 86 50 01 %....vtab.%...P. +| 3248: 08 08 08 09 08 17 8d 12 30 20 38 33 37 e3 aa e0 ........0 837... +| 3264: 12 d1 06 00 01 06 00 01 06 00 1f 03 00 01 03 00 ................ +| 3280: 01 03 00 00 08 32 30 31 36 30 36 30 49 09 01 07 .....2016060I... +| 3296: 00 01 07 00 01 07 00 00 01 34 09 01 05 00 01 05 .........4...... +| 3312: 00 01 05 00 00 01 35 09 01 04 00 01 04 00 01 04 ......5......... +| 3328: 00 01 07 30 30 30 30 30 30 30 09 1c 04 00 01 04 ...0000000...... +| 3344: 00 01 04 00 00 06 62 69 6e 61 72 79 3c 03 01 02 ......binary<... +| 3360: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3376: 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 ................ +| 3392: 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 03 ................ +| 3408: 01 02 02 00 03 01 02 02 00 00 08 63 6f 6d 70 69 ...........compi +| 3424: 6c 65 72 09 01 02 00 01 02 00 01 02 00 00 06 64 ler............d +| 3440: 62 73 74 61 74 09 07 03 00 01 03 00 01 03 00 01 bstat........... +| 3456: 04 65 62 75 67 09 04 01 f0 01 02 00 01 02 00 00 .ebug........... +| 3472: 06 65 6e 61 62 6c 65 3f 07 02 00 01 02 00 01 02 .enable?........ +| 3488: 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 ................ +| 3504: 01 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 ................ +| 3520: 02 00 01 02 00 01 02 00 01 02 00 01 02 00 01 02 ................ +| 3536: 00 01 02 00 01 02 00 01 08 78 74 65 6e 73 69 6f .........xtensio +| 3552: 6e 09 1f 04 00 01 04 00 01 04 00 00 04 66 74 73 n............fts +| 3568: 34 09 0a 03 f3 01 03 00 01 03 00 19 01 35 09 0d 4............5.. +| 3584: 03 00 01 03 00 01 03 00 00 03 67 63 63 09 01 03 ..........gcc... +| 3600: 00 01 03 00 01 03 00 01 06 65 6f 70 6f 6c 79 09 .........eopoly. +| 3616: 10 03 00 01 03 00 01 03 00 00 05 6a 73 6f 6e 31 ...........json1 +| 3632: 09 13 03 00 01 03 00 00 f3 00 00 04 6c 6f 61 64 ............load +| 3648: 09 1f 03 00 01 03 00 01 03 00 00 03 6d 61 78 09 ............max. +| 3664: 1c 02 00 01 02 00 01 02 00 01 05 65 6d 6f 72 79 ...........emory +| 3680: 09 1c 03 00 01 03 00 01 03 00 03 04 73 79 73 35 ............sys5 +| 3696: 09 16 03 00 01 03 00 01 03 00 00 06 6e 6f 63 61 ............noca +| 3712: 73 65 3c 02 01 02 02 00 03 01 02 02 00 03 01 02 se<............. +| 3728: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3744: 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 00 ................ +| 3760: 03 01 02 02 00 03 01 02 02 00 46 01 02 02 00 00 ..........F..... +| 3776: 04 6f 6d 69 74 09 1f 02 00 01 02 00 01 02 00 00 .omit........... +| 3792: 05 72 74 72 64 65 09 19 03 00 01 03 00 01 03 00 .rtrde.......... +| 3808: 03 02 69 6d 3c 01 01 02 02 00 03 01 02 02 00 03 ..im<........... +| 3824: 01 02 02 00 03 01 02 01 ff 03 01 02 02 00 03 01 ................ +| 3840: 02 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 ................ +| 3856: 02 00 03 01 02 02 00 03 01 02 02 00 03 01 02 02 ................ +| 3872: 00 00 0a 74 68 72 65 61 64 73 61 66 65 09 22 02 ...threadsafe... +| 3888: 00 01 02 00 01 02 00 00 04 76 74 61 62 09 07 04 .........vtab... +| 3904: 00 01 04 00 01 04 00 00 01 78 b4 01 01 01 01 02 .........x...... +| 3920: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| 3936: 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 ................ +| 3952: 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 ................ +| 3968: 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 ................ +| 3984: 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 ................ +| 4000: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| 4016: 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 ................ +| 4032: 01 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 ................ +| 4048: 01 02 00 01 01 01 02 00 01 01 01 02 00 01 01 01 ................ +| 4064: 02 00 01 01 01 02 00 01 01 01 02 00 01 01 02 02 ................ +| 4080: 00 01 01 01 02 00 01 01 01 02 00 01 01 01 02 00 ................ +| page 6 offset 20480 +| 0: 0a 00 00 00 02 0f f5 00 0f fb 0f f5 00 00 00 00 ................ +| 4080: 00 00 00 00 00 05 04 08 09 01 02 04 04 08 09 09 ................ +| page 7 offset 24576 +| 0: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +| 4016: 00 00 00 00 00 00 00 00 0d 05 02 23 61 75 74 6f ...........#auto +| 4032: 6d 65 71 97 65 3d 35 0d 04 02 23 6d 65 72 67 65 meq.e=5...#merge +| 4048: 3d 31 30 30 2c 38 11 03 02 2b 69 6e 74 65 67 72 =100,8...+integr +| 4064: 69 74 79 00 00 00 00 00 00 00 00 00 00 00 00 00 ity............. +| end crash-670b15f2955a36.db +}]} {} + +do_catchsql_test 23.1 { + SELECT 'FyzLy'FROM t1 WHERE t1 MATCH 'j'; +} {1 {database disk image is malformed}} + finish_test diff --git a/test/fts3expr4.test b/test/fts3expr4.test index 1bf039e55f..4a6bd293c4 100644 --- a/test/fts3expr4.test +++ b/test/fts3expr4.test @@ -68,7 +68,7 @@ do_icu_expr_test 3.2 {*lOl* *h4h*} { AND {AND {AND {PHRASE 3 0 *} {PHRASE 3 0 lol+}} {PHRASE 3 0 *}} {PHRASE 3 0 h4h+} } -do_simple_expr_test 3.3 { * } { } +do_simple_expr_test 3.3 { * } {} do_simple_expr_test 3.4 { *a } { PHRASE 3 0 a } do_simple_expr_test 3.5 { a*b } { AND {PHRASE 3 0 a+} {PHRASE 3 0 b} } do_simple_expr_test 3.6 { *a*b } { AND {PHRASE 3 0 a+} {PHRASE 3 0 b} } diff --git a/test/fts3varint.test b/test/fts3varint.test index ca0189dbfc..9f797ed954 100644 --- a/test/fts3varint.test +++ b/test/fts3varint.test @@ -110,9 +110,12 @@ do_fts3_varint_test 2.61 { 2305843009213693951 2305843009213693952 2305843009213693953 } do_fts3_varint_test 2.62 { 4611686018427387903 4611686018427387904 4611686018427387905 } -do_fts3_varint_test 2.63 { - 9223372036854775807 9223372036854775808 9223372036854775809 } -do_fts3_varint_test 3.0 { 18446744073709551615 -18446744073709551615 } +if {![catch {fts3_test_varint 18446744073709551615}]} { + do_fts3_varint_test 2.63 { + 9223372036854775807 9223372036854775808 9223372036854775809 } + + do_fts3_varint_test 3.0 { 18446744073709551615 -18446744073709551615 } +} finish_test diff --git a/test/func.test b/test/func.test index 23a3ae4392..ab719388af 100644 --- a/test/func.test +++ b/test/func.test @@ -1391,4 +1391,32 @@ for {set i 65536} {$i<=0x10ffff} {incr i 139} { do_execsql_test func-31.1 { SELECT char(), length(char()), typeof(char()) } {{} 0 text} + +# sqlite3_value_frombind() +# +do_execsql_test func-32.100 { + SELECT test_frombind(1,2,3,4); +} {0} +do_execsql_test func-32.110 { + SELECT test_frombind(1,2,?,4); +} {4} +do_execsql_test func-32.120 { + SELECT test_frombind(1,(?),4,?+7); +} {2} +do_execsql_test func-32.130 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a,b,c,e,f); + INSERT INTO t1 VALUES(1,2.5,'xyz',x'e0c1b2a3',null); + SELECT test_frombind(a,b,c,e,f,$xyz) FROM t1; +} {32} +do_execsql_test func-32.140 { + SELECT test_frombind(a,b,c,e,f,$xyz+f) FROM t1; +} {0} +do_execsql_test func-32.150 { + SELECT test_frombind(x.a,y.b,x.c,:123,y.e,x.f,$xyz+y.f) FROM t1 x, t1 y; +} {8} + + + + finish_test diff --git a/test/fuzzcheck.c b/test/fuzzcheck.c index 80397ba4e4..4096f845d1 100644 --- a/test/fuzzcheck.c +++ b/test/fuzzcheck.c @@ -531,7 +531,7 @@ static int decodeDatabase( fprintf(stderr, "Out of memory!\n"); exit(1); } - memset(a, 0, nAlloc); + memset(a, 0, (size_t)nAlloc); for(i=k=0; i nAlloc ); - memset(a+nAlloc, 0, newSize - nAlloc); + memset(a+nAlloc, 0, (size_t)(newSize - nAlloc)); nAlloc = newSize; } if( j>=(unsigned)mx ){ diff --git a/test/fuzzdata7.db b/test/fuzzdata7.db index f994daa2d09cce93dd59d63244501f6dad9c66bf..f24add2b58e4937c0dfa1ae316695999f9d1e4d6 100644 GIT binary patch delta 741244 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

    #h#UvpVwd6?_M6$qGPGvIenQ>; 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 fm}Q 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 delta 453565 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

    O@urVvS^E_WPh9y+6%zP5 zUj)EprZeidIP!LTxJs)jIHi+QZsl&sU&SW)e<*~gxgOeYwlB|rj>J5Pf{|99THuT_ z+SIQGc)+*=F!BK0N^n1NoFH7@2q5)>B+}Z_or1KPsNkvN86LU z^`(T3ZtDCsBC_@;mfbu@N6iC?NH@ip2z=w}%_x!n5@f3-9LzIV8pC)aCT z?Hqm_lE228< zQDblt8z>T#_Rk&l@;8v+N@fszdjTi&ulW7}Vkvk*SN`eu19{=>-o?04)u*PVQtuJ? zaN^@SR^BpHyH|8^&tD0yO5B{5i5t}Un<$D1lHP}M_~^J}klxfRtEeU%N}J7Y9u{q4 zo;rUsJxM8sXu|CHMYN^9|0v}lOqUK==4<}LzjG;HC^at9jcZ|B5%u97Q@DSBJ*%`}a!UY-~14wZ;n zo#(c0R;g0bz&h2rR9BYhpnkgi5&9(P&kxVNA!YVaQO5L0&)HWLC8Ff zWt|uI8D3B{OH zOb(^^KfPIW=I`zKk+{Sa8cL6qN$wFlHM$nN{Hz*&F*UKXD@GBa9R(D23J*w6gl9HR zgml_khVExK_PRA=LElY#b8|DW*koqh74JL&U_y56aB9sga@GrE5m&C(VJEs=3#Yl5Uu}MEv>NNMncIWG zHPQ9@IGZoRdYw*OL7BVKS+{3W=h0x@DbKCz#p}P7$lX;i@Mg1%!&B4f-Svbw1YW>J z*S@GEag;t_!nnTa(L8AF6Lk?7LfuU$T;GX$frC<>=<fS~88ePx4p;lmlU!g=XWCxG)&~@9^#R_n8t@mjho4U^UW0A{{rW^By z6tieOFEbB42ce=kJ&dEh%_M5(F0Ho{?}$3*a6yOt^@*QHjwb0i zK*rwyP7w1%w2cv%j<{^WI;-ZO((;I8j}6{h7H-gqEU>)L~%*^oYV87g?7T z_TA~hr@AMN@l-V;JPPH);Q6N$yO0`B*Ec)qv<>}g_2rR6?B4bj%2Ah|)L(*(8S&*eu(s8L7KhY^^ zwVG0JA%;~|&L7E2`X_ZM>Y0=$BIzY5@ku})JXsjjS;f!wNm?jTAU!2l6ZIlgVkdee z1+y}F-V8C~+%_O-m_!KGTG@&4Y9qEzwYH+#MGh?h3Ob7wA*v7XnlwQgv*@|`vI_wT zbR%hDwCA0Jk}hG{w~W*O_jPbZ);&qKtV z*-77%D@=85FRlF^EO733$0>n3c^T_Q<8OR<1+!5Bm;1(HJizSR|BXDZ>(!LWwU8eN z@{_8Q9~sA8`RmUnol;BsO4T2=<*6MitM1=vPQ;^AvGhI`J>lrd8XSj*oBzb+X>qef z)5ECg$jLeP_f<4fu2K!XvN+)MTn>vvPL@X?<4f6%PN^{Xx#(uHi*II}AQAx2KZ@h# z@G97#kqou8xhre^W=2ou-9xiUz{A;t6>;t~5K=7_#tY~ilb?%=q`DCDx*VY%U!nX^ z5bAGB{9}7kV_7o(hdTL#s5oep9_gP_9hYO{pk9jja7*<{GLx>kK8gVZ=hW;He~|Hy zm42^CPIN=e1U@c8x4|d17GyUSr zn~3*1@cnNmO~ndx#AR~`9tw`GOC@rL197tog4;51&-?T+jA{oyPI`*=ee17xkUNp$ zM%4P|rq7Z-AjDwE%_P{+b&+HWaALVDAeo>NbNsjyZ@c^=Ovpuf4gZjc zn2{IX2tNq}R+9fTS+}K@cVItSNv({f9b+|L(K-3DyVR2nUfdoy$C$0XHM*4C{?;B< zzevm-YVGc9TwLxzE8->=D$!n)7h*6O@uI52;?Juz5B8&fY+e$*!wN4n993CZB`PVvIw=H2Q8faj+spL3V`ux^LWv}IvsNkcTcEOel^ z=zvCNN?mL1#iPTMH_IAbI$CZPgrj{Ld+?HZ$=E8v2aR%TG^6^sWU=}w)BZs1o%^2^jPVYx*5Fi`Q&lf zee#PABnPUbp=@wr@&=905g%klgulXMfG2gxT=ZGJ45d}GzD@p-o91P%!#jvcPtoFO zvy#aiHjEbeED~8KFl<Q@#C3X9IvBFdx-{dOxhl?3J;935g-6FmMz|y3!Yo`xCvtNd+{O+ z!?Fr0E5HrH8R`bnaCiOhbNyNshyjzY#{1Ec7J(z}*^~}KEA;^*q5Xk}?sl|xNjOG+GnjAr?^lrtI~$FLmbhc5R+G)&U5(5{>- z>yGh5v-<6?S|LY;(=`;;5dnjgfR`L`e-%OnH1S99S6rpxvhF0Q>C>uGDQ|X5AUEpD zyk3Wt>#ow1|Ioe@AbPqAQAx*rCa-}?_0gdqnhN6Q5jngnOsVDwoI(w6SE)hPiP(cm zv)d4eYq*5PQ8Y4TjtY6kL&u~fNE+Qa2n%EXq1|Ue^*yfpd1@jIh>^orNvKalI5#t;51dRAB58XlBdO>M;pTpn#-LN3 z4q^Y@8!$3p9P%Ar!e zu+J)&*78X`#q!72eMX~$`AH|tPg^SH`xMs(4PQaK4{T1eIWkb%++>|_Jb7MV+Ms^I zm*d5K-f2&IsiNP*soxYf_yOM;lL9B}iPdeL2z2ZCV<7FopYCXFoj_{lYM7R8mF-~p zUENx0beHh#XUy8lvokM^AJa^r&&N3%Lf+W(&{D+xgU0iIaB$5DC~pW<&;r7ujQi4r z`4oq~Vla3_gaMGh`Kwc3ri(}~%M(9)u^X3t5i&O-;T=NYDzv?~r+lbJAVXoo5$eP* zz$#VINaYOJM_SMB{pj6|p~((fK&5$V>m(*JtYVv8rqNx+mp7}i=I8&qqFze*8PeL9 zI4pMX{KAx{u?NBG6kYHADiDnQucm0+RZo!|0Kp)SI3$cV-1=EBEz9S#PNX1hy$CZ% z5D>9xdwd(a$O?23vW4AzF8{ZRhZ!D*lL9iDiBwpuUUZ{W@gqxL?tQ<)eDf{=9|RJ^ zM5kUALk_*`U(Mvyo|nFpGTv31&I8_0Igf+$JIhBYgQOWe@S~JzYW2)V8u2#k^7+qQ zSipr8`1xN+*(Xy}!FVPTnwB2ke6_r>?f0&~ks=e`Cb`_fm?6Xw0=XA78N*7BX_~X> z>5T)Jc5Gc(ajrL-O>yB3toV~g$Tx_Hg_bW{>CgKjpevLn~u662q3o_Ob#z zgOqhn!Ds_3?Qj-JOO(Ow#XP@B`Ayc{!}P!&{Iv(-YL_(LY-y6bncKfh2}N&zWZkky zHs{)>w#=8<-*uX+na4owHroH6#wFV+vm1H-^ZqvIJ2Haj?2)5oOVEO+WZnJ8Q~mjW zOBI{RNhpt#{By8$5KAzFT7VQY%H0gd*;RaBZhrE`f@?LsgSx0rYOy3e%}&-${o6zL z=Z+56aItu`Nf#*=e{WJrcaiGreo;dyvqFNir;9<$>y{u-bkqj?ySoh_HA6SsI+Ou6 zxEC6_*w&!zY=e`bp_A=7lpSo(qHJf2MA_Dcdzhh(Z3Rky+j5jf+cK0o8ypc0S{wXJ z_4jOJQT||i66GBmv@QBuHn@4}zp;%(`K1kRp8A`%Ven|wm)eG+{KPf{<;S+cC_k_T zqP%Dui1N5?0Lp!~o+vYIP-f~k+S;I8YV$)m-_{&uxUDJ5={7iE>ZjS@dZ~ZP)&S)c zn-9v#Hdq$)V{P?OjqlQPF!_F)DfwD@H=^Zp9er-Ky&1H~+RS zK>5&$Vb}d-orm&wD;zU*KUl-ykgB_DosAE7tg}$ww$4QPy>$l4Th{3)zp=s@Q}?y? zDU>&?Q&3*Ek{;-yH3a3m)^RA`vW`LdrWHf2J8s2L8=BcrrJ<>9K1yF3sx&mT%|+>L z3rFc?L&b)AwosH&b#18L;9*1c28|6B8)O?Q*8gooW%`Gg-lbqRwg!M!DOHN!0DMViI-Rt%Fc*vtlZBc~(rNF4x*0rN!D0 zWk!^>5B?Wx#q8=fSp!gRw01!wTG?pm)>}z={j9YU%KuldX{-R{Kh}SnF@$vDUZkar z5H=_5J*1}fZkT#REzM&-S|n4+AKN&NnVO}3r$S^*3%ge~`)y0N1^8Zxc8U<1F1iPn zmZ{GZd`e^&zy_{Qy~RpfrEa4Ll<^gNA3Xj6#-7>Qg9T{(TT-})arD&qB5kUxOfe(z zdU;4yGVE78%JC?Y9wU^ZQ+q^V*)@78ez0{RKWR)2c9r!q_M%CY4kLt`)|EpUw^Cg2 z&Qww3Veij|4l?HZ`cIVm+zz70>vHJ-3~sVs{okp;8|)DxeN&sdtCrAy55W!b_2qe+ zsY&6iI5c`7Lp;SmzHvxuQ%PFPZk|8Yjzz5B5-jUgMZ;17i(Jaj4^Q1IOUvovzS!L} zzJ+xeY1j|lJJyyVFzz!fq~Tk`>HLBbrre+b1-ci5)hC+&H9A!-$@)6zL3>tsd{iv* zd%64bvC~pJL3z+Fu}aK4Ca`h4C#25RU^HM1ZJ~@Ao_!TV38Uw?shwcqpPl-bJ0L|D z(-hY!40)s6R#t>iB#e>XCvTp01?#em68*^TT>-CjwqO}r zAnO}H`c8(#A^7aXbv&e&hObLa@g%fOmclRE{%IFH^v%+STY<6JUcqkBqtjj@B~(Wq zl$e@RZOO!QJ1!HeVWF) zmQwQ|&~J_3_cPQ{AnUb72U3wtN^h(-xb0ZT<*)a;5Fkuj-Ifpoprjdy(`b($<&H&vbf&fAt) zH}aTcsp}+-z5`Ud8-!|C-!@lcU0)>vzutfzv}2JS(lTiv+p~Z%X-9Z;-pE8WsXd!; zF8&Y=O&5;V3v%jSdaHC~BW1haEm(RNrKlfuXZ;cA3Cz=Wr#7HPl@`QqyLHAR}OuL%<@(8yy zI40`{)K(Fbzs2%{IkP^}>b3S^5$EDJ^RwP*12C$AkG}8(@R7)^Owh9JXwl7}UTsJM z8zcz~3r)~LWMV>KddJY0nRbicCj`(yz89qLY0OH}1CG(f^E(pQ)0OOB#fX;oNI> z+CBKYey;YUAsWVgtU!)Z+c-o}1i$nCrsO6oyww~&`}5Q0(8k-E&-wX5~>CQ=Y~|N|+-i^b8SRnibTu1&n z2=0Jqe7@0fQ*au5<~>>I^|ID1XkY42q_M0+9U7f7)8?UaVO5TR@_qoDx}Z70IIRG^zR9x=?Kr=V! z!b?}D&2Uu#UXW1r^Z>Sdb=p-HRA@wkVIRQxH>PzI*aX;-J!8|9SIah~rMpWFc~m@j zRn||nB&PL{0OqMkE1;hdKidWqdRoN>FahZw(%wY(W}UAclyP zO<19KQx$KOpBC>j{Mezi7!7jtiO{V2XW}Q? zn(>!jOPh@LFW{=9X%C6a#n--8tTpKM5>{uM&)YNx16f&Q{V*1t^o%<%c{2^!HuX%m z`0^?twot%fFFw62ZM4|*me2_@mEOXo_S>`;DsC!CJK(BDf;(ptzC) zt;^8~9`s^6jUEEMemT3D_Q%J3Tv=K>F^6UHox>0Hwn5=&`o9VpzIx=CKl+T)vWdI+s@jwXOM z7vN62_YS@w$vmC&i?Fb|Z0?S!gos4t5q*r4Ju;dC zXWoDXbV~1E6p}8hV6jXV>Lw3X7?B=T8)@qCT=0rdmm|GIpNXfPuqBY)#G((iM54JK z8N%f&9>>ad7SJsJI1Q$DMEW|)V>?X=gsDBNP8Em^k(=Tg5p7u)5q?WxZLFxCh3)=* z33Vc$o7$vDKq%Uhz8Z1%lY9Ta)_%pZG(Ay*!-@7A;rKt47|)igv0?Bl5>e@Q=lawQ4`bdn?9{T-vKCU#~ zEaoVf=mTotqTkCdc5Z7&Ud;5@c<8b8+Zx~%g5Ipyv0lsVZtJ1gHx)(5tGS-G?p3ep zFK_d-!D#XR$}zNmzDw+PFt@QSpgKn$$n9n8S}Cb$^v~zEv2}5t&jonrg~zsVf7KSg zpKiy{zWCUOU#j}>r{ZCRnZNbrXzKf6>_Ugk!MF`SzoC%2T$2wO`0!Vn=CwuNVpoy% zuZW5m-p%2echVzhaFMF5EnE6?Izo>hbi*EWre0GPGV%4-d6-9r4HrFkSzlE3wcqg? zlRruhsO6=zv^NZr`2L6KQ*j)_T!m?JR!8s2`ZtK-yVUZkvp!jWwB}1pzFn;{?Mp}J z5L4}{tgNrv(lX-@X@IiegZvFG>S7Mg=jv=qPDkK~!dPgl47Emo4tq&IWiKgz?rl5= zpoM}rDu3=wZc6|_W8BY{-!tFLonq_Fq}6Y>6S^l4{fXT1wq7FA1w2kD9Cr_5mLvEp zuGs}yf3jx3D|>YdsRpf!Z)mz%8{sT4Yg)+waPD4yg33n#~e+Fy}|2B@B5mceDC!3|}+T*t*}3KV_`U$meD>vEjh2AoT!Rm`i4p(zj9yd8eq4Yy|eAnQNH6{j-d`v5*8 zE@K}SY*@-M;(-zhvyX|-w`3qAXw#;i+%q-fH}Kh2)~)kXKUPGFFMls&yUGJm0aIdW z-U4b+cp7W`20>-MChd1~w*Mt;^5}R)JmE?W@oN%~$j^|}lyLI}q}ojmV;gyf5ZU~N zG)`LQN!a?YTlQtNRShHf9Ho+CA!nZ*Sj(e|f*R_bsct=y=qKut^`FyPJ*2#I?zN0&?u4^} zxaZ7<_-MNk@&>3IQ+Zlc-?|}nVUKXpe~rKI*r9`N{-oTQP?>=;n%8|RV~YlnW-{K( z0Q5xvtz}=zbK)U}G?kohyqGcDjQ|`6NEs5w2Ys4x5)Ar1AhyPiS>DS-SWwEXK{O{w z-H2S59Jwyfx>Br}okBCh5Ho2oy>(dPM?TLOih;dr4sOCC78HiCVi=U!`8yfHb+kS8 zQ^XE~RM5@z5*gB~KLuP3i&(mA94pH#hD`RMslDafjF}YdCEFR~N6kzlP5Z?8q0#@C zy52U1Z~iVLS{&V@8VRImw|}aJqcMeU(ECUIoDn5!^gm(Te#yGGHinh_n$bBcdX^_E zJR9xFitCzM@X;C*a>E4OFb$^e_aSeO`YiA$>?$F*+BajR?xrun1X;_r!dCL$oxv1C zvK|tLX4F*!P2tn;dq2<{N)1-idipJEqz%A|y&@bBi@0PuPE@y3Ya26fH&YYZB!0%< z@BE~7O(1*`oIjND>%V2ZE)}_(=wSVmO$cwip?Y&UnmgY^1x&DDW00w4eKGj$>l!nsan$*MwoI++*rs&TedZlWZ>hy-^X&B*G~lbISf645rV!8}%dMT|6cmS*uTBTaoI4})iphYi?=7X$#9rr{eF z^tyWlLx}$}+2B?*#x&5KunoHu2Nu(@gyF;-AF_b&)ypXnKx}rR_l`FFqzdzG7R!x}r+`ZJ!9m{pD|@ivY`R@`Rv#*XJ7zx5X6&BrU|sYLPr97T5)^>p1Ra@-Ia`+ z&sTUj4;0jRVWaj#F%XS1>)4=abtu4f48&QO%?+@x!zt{{oX?e@1E9@8`xBvTxvzw6 z#3AxW1r8;oQWZdRA#?=8=#}=al!tIvWlyPIz045HptEdfQWR@CBQp6VDx-$X4W^;O zT53}iieX8nnHod$*ul1E_{k(wung~nlV|f9Q!Nu1p6MOP}gFbe;4aU=?>a%*0DsIBd zUNEJ5B0fXZtEMP0mcjCx>2uX`VIL*CN;#o1tm}Rg++wjtIMzsiTp!^xYdLEAQ?-H~ zhCxj%c0siS=DYiiDA!JZKK6v^SxJiECyPzzTvd_8T(n(qY!}{uIG!ZG)8&D&g3u+Q_v=I01bhdVB`|`+HN0 zq_(Z6=}}4@%LTNf1aZ6qQk#~PJ&BVK#=v~SHUVAI1@u)vd zYh>BBnfc{zAICyoF*fAWADSXv)ixv&!-xTo&D+c7d?=E|XE;gH=hG5>qJi3S3)KByrWzOG9b;4}>V;}_YXVM%+6JU(XePO=$*Cewvcy;$Jbv~|ohu9ccE zsbgj;*)Wh#(3p3KU*VlKHVqyXC5@qu>25x*JlCS3*@|!=Wa1@>&Dn@@VzWF9fu<-s zT8Ti%hcjj~)YTrL6jNK*pu<4t8y4_&*DwMlwo%M**p@!yXZ+0LC6$_($%)KwRHMbS z33%L z029nQ55t)B-gejqcL*O@?l-}FgSJ$Pl1N)>M+S@LeU3&$j>6}8?A;mWYfcEj+hI@| z;iswm$LZ!_uH=Xd)8&q>Gl?|L>(3T#7O#tESZb)*ojiF>BrAzWVC-`-j4cWS$C0Hj zvEpbAu0jBs*D&67uKAQqwyZ>$qIj7<9_n@HK-7b+nVo-+rN z^J==X+Ft7 zLGYyv)5BRw%O;~>e2QlQKQ-|s19ewS>7zdY5wT1J#(7dwjDxvmt3=6U^4OtH?;3b? zqb#5o1#yjmFlM1#cc#}0nR~3xP9sIEA&fxBsdeV=DWafor<v&L_?<`4eSV&z#^u~T970yt83RyM%WtlEy zKD_J;bD41R3bfoFqhXq><^__TFTZO31N%dSxszSTitqFkZC&hPSZ*F|*V3gJmN>x) zYt)7%RDnU_)K_So*EL---u4Fpm(;+n_N#o6^>9;1hl{BQdxkvgp29?@rdK zL}JWvxE{G?&SI%`GM{rxX=V2(gdD*kydkTQ*~Z^> z%amkQ`)c1BEcKviTt76gFEjPfv|y%|76Tji(Ckr{%rXk3)wm3hRx=>2^<7+yNe*ZY zjfoEI$HoK)(4NM4hX=|yLVO#yIv~3mV;p$d80A3Qj2j)`BI7!TgmR4oG>xn5Q79wr zn^7*aZ$jy14?|hk4&0>C(>@2K+D_ofhjySg4S(1Hn>74lpN7{A_w7?r{%8km(@X*Q1lySzkdK z>A0?q+Q33i?;658cF%lUDr%ScomvIg;eBHJ;sKru{3?jG$09aF<1d!`7&CuBB7y~) zdPO}mm#L*LYN1DY?`MA}_I{sFm1 z7&CX}To1}zFLmWHL781tQUEU;mg%EX!6cQ&tmnHG(+G|r`Q<(FJ}F6WvTOVMc@~Yy zoG7WflUP9x9JKo(`WNbGzz2-aY%Z&M2#Ev7GWBL7>Ku^g#RDg0ww5WkMKZI>LE^16 z)6ylLZM(da)OmGB+4%F0wGA2@t}7zA^4%zS2Tt!YBoFM^Xn=e^ws4z#g#ijF%_2W_EoWt z4Hq|}zKpL~2}32TX*vQerdH@#Z01Z^1(VJmcIZ&vDQe6xI=f7?;w+Z1bmXRpuJ<+# zjtoQg<`!|h_@kHe#ewNf7&_7FYGY-}Y$1_*F2<^oBBWVr`E`vU4}^D8NW#Oc@W^Ei zKc1aAj863ORDU+ApaH_j^R+LPM`&y&^U|Ml5D2U+)U%Ef)jvP84}5k5^E3D1Y|h`I zviBEmYqTnqseyp$V%SmS$RvzFboyXo#L*C5Kl7c)O>bna!qNL_T0TWYs9$s-bGVv3 zf1z$i_&K7HDQgT?5GbHoE5snCLo;3ZF3;zgKdIF?cb^}|Pp)OzXxgF{AE*ruyu*=y z4~i#@o0Y~*2^Y|oCZ|91?dHFt=yc`SrzU_OKy$I$aq zQAuV;6`4W~3Vkbadprcv7c7P8Ptg-6Dj!zT?36cd9mHcdgdpt2-@KT4$jMGkx2h&vGXU=T=w(~cx0!#brQp2}@6a$5;@87Y zcP;!{BpY6(K~WOcMIX+AQ~np8`mv+}(O4R0y-6$fR?*@dmCRKSGV4n4C-(U(^ODBE zF-t=#X6cq#8Lxo&Yh*;|!?EO%A^|~?-;oU>b6%3dYS0`}=+1*sdYwMJnufJ=^|~yJ zb9ON8hEz9JS|>}78)|whlINPxFeyuIl!nYCFY(~$Y&(ol_j)`;uirq`$E)-UJZQ~K z8BK$7P*|!&2$X89r-U@O53kXQW1#eAbxJ-*cfCxMV5h?(k!Aj{Yt|8!G=fd&`?){& zem6%gx_<^kqGTK(rc;LGB&fZ`58Y3O?(GRcOA!S8*POb2%Y)SZ*q}x5Kj9@HQI4kU4CiGBrHx zK@P%{i{($+JoGD$Hj*IOaGu!ryqciXWloMu&FV--nd;p8zGYyBNLup+Hri{!<~y4=wAP9V!z`{U#eqEF&{S0;zYXgEeT>k@+WUvc8m5W9V2S z{S2*{Um#C^SeXJ#aW(D7??z?0%Vd{PQfSeWN5B#vqsO08Up|A@ueXz{{6KBAbtFW~m$Pgmac^aV*BD4f@#QPoZ zIg>~}W`vetaLbc_WmYy~h4Wo-RDGGdeUWuj7=I23ojT3&I}p6?(rz=*`O=slvo?sG z8qlnYC=0i0FwyK4Wd=)8l0o%sD$14J#-%f!E9FjJ7lyCzPicI z7qmJayAMsTu@C(UN)M`0qTrNUiHlcP-O(5h(@*I5yGXt6&mOeMo+!=a<6CAkEP}tW zC(Woq`A-PgE?l?Pt5~#gkgJPPV)yQ-Un1IPs_-+mW=O{L?Occ|&+Y(J#`kM2>w4+$ zek`I-USnK-4^3!2&$-znd%{k9WBp+DZrZUMar8e-$TH(A89*T^_$@0U0l=_(y%FGH z^o};wNjJ3g&CVoK(F@ERwrwddxt%pu))+N;E$p*IOk#%VnyohC5@F;wn|=h#KDc*_ zM0L(pqZK}TS}v>nDpdW?m5s^HR>8{jqEMg{e-Cw)jAR~*fg;Bl$r^GmMnlBCXiCR_ z13qq2_F`ETO8Oh9RA+GPZr@63BNmL2Jfv<@FQ24F%m$U_o!}J#aiwD8P`08;Kv*XE z_vF8XW-pYaFdiD7y<1irae*>sna3}nxAmyFiEa_?)qpFajK+jD;P(y(pK^t0(64A| zcDhOm=NS>%D_k{3+{TQJDTtI>D2{%YFd7#pE-GWC3420wy4JDMZ`D2t&soAgy8(Z>weYdTW`MS*PBuO^5;`at_i^MTP z$|{6-)*xc>l2=74+XE8L`lIB{WKq_u5Mg&@Pm#&GRit=2c(=*gDB<#GY=J*^afRDS zff(n1=V!yZGN05#6dX#~4>U&HnT=R+tEOI%*tjq94$~Bzp)o5$x~VykCGlBL{XZgc z{z^9NQqR=rGVb2SwzX0KN0?9cixxE2m5<>o*>}{^f*Le%mp68-K_ko3-o3kM3FusG z<~cynIZkvYBPQ;*d55^`xU+vtML!47UG+EGu7|Gvg z1C4j4LJqX0LxynL2!90IHnarwRqShJSedxb~*HfA8MNvGVqP>{Hr<ow=INVj5Ku7m^+SPCYMf)$~Xxd*s3ZlLf=7OXq=4vB<*)$6U7CU;ezVM4@Txpl4au*YC#Vg7Ug0w zLtKO#5!b}RbMfb#yefrk+E{Nsc>)kbRw!rBE4^+2Fvnl^m!sLd$BLLv@#mogj16%w)e8jH~ zkLJ^k{SL%CYfdIDOX);=5#GNa1nT7RFVoVv&Mf9ONIpe2R_F>9m#> zVI+F?xa%ICK2hzu2W|VjMI#Anjk>J z8A;K(gcu^Uaz0Pf6vM)hPd!;6;TnuvJ?bpMzkVi$`Wl|&xS_%J(~SN6Nsd`3NfI%g+O)?&ebQPEXCgSyC6}5){{AXxIijFMbl4Y9lgQHY)VsO1yNv(Wq1c#>({Ept_{PwgTj zt`LI|l?hgdRCIhTbsT;@ztOlQ6A5fSrqTT;&}XoEy`T@-^1Cl?q>m%25+2qJHk(G4 zCK42um)DM=1HK}9pe_l~_Lgv~Jf-Nm$WaIjxrj{sA2~lqJmd%hoHq&%Q zQk~%#nrgjcns$~9vSsh&!TFhXQ0Qs7Mnn4*I&0qBc|0Qp26f`P#KyAiKCEO*-9zQO zCRSvCrIAcF?QD*Gf4+i)Vv`0sG%TXz*On|OJadn1+)~ujGEYTro9R_{MQZE@xV>mu zS}#iqCB^Qlh(AI%Inc69Qo*JRpeses75gZ?5uwyAo(Zxvl2kA^rzj!h!@{yY5<>tF ziwa`m@;%J*A~|`c)u8nh!B>LFUn0258-nymi$x;)a*}d977wyqkoap)THquL<1!PW z>PRR#D5fGcCCCALHDie0C={d%zy&VGLJ^@I6IvV;Ksjc*VtyB=V-{hpZ&p)l^e#JX^gqs{2UGV#VwZ3 zIQ_EmSe`i;e!5k5?T<5=Y(WPZHqC&A@x_`kPx2!`PK3J$(Z91NSjaxA~V%}-fiazPV<6`I7t z>v+gH%LgioO1)noaA;4=kod!kmgeBImrM&BEm-RhEs+}If!s+B1a#7lRaTV7xDTCs zkt6x)dg|O7C*b0>4j(^uZB&^nEP_LO8jhjnVf!Dugxeu}Z5Vij~XA5Zeye@ub z_<13di!<;4iwdAA^>-EX4!+ZvMenZfOG#Y1< zy%;)vQDZ!uJHXM31+VV}FwQ!2Pg<2wavOzOyFKp9&i00C*zykJ>#$*c@`7nqyAPO0 zEApZ;d`jc7MSTF@)=c3#81^rX-}Fx^g?QTT&NI@0aH|LVMOFh`u+wQ>z?vHBtQJEW zDH~s}MW@-2UV3|`UMRUIlKIk;%{W76hKunOH{ajf z9}(^91-&U11+cX$!ZqY7NF%T?yp8F77WRyHAL`|qZF3xeOT1bWZv;bD7|}af)R*n` zRCS;=EfNetr5Zxhel9o2(Y~rY{C46fM>}?M%)s(x@D`qWhnN-uci-XcT@q?_QbS;s z{!IcN%QA6NyvMu6OoQ34>of)^3|ZFbpPz~WoJLb#YU%yO8+4ox;i_qDv`Xs4#?NB7 zRb5E$@94;n&tgHYvhjUPSubqY!zMRn0hc`6WtpZ1u%xZI4Oz)`^?YPOyx)L#eVW1j zz6(XH5kVs`P-z~<4-z#FSZXmZEA!^LqBjgt7Lh-5n=zfO7&_05zqgc4Q>nVr{8A7g z5+If%B_4ia_~}DJ{RFT(-SOo4XW1K)DuB*<^Qg5#gEFS_$=6t^o3RbktYt-tHJ6Z@ zwBb0P;j`AWJu(?^5%ggn(4JwNSaX$PwbgaY5rVb9#4(jp8R+$ z8>S-bYx#Rg>@8Qai<*>vD!g_jcCiDdS2T@GuVG1SujC|?!EUR`#F-=jm6o4#%b50c z_qi-^#g%=QIqn0C;j!r*ng_FNn(tEVvDYx-H;I2F=l8%HAq0)_bLG;Go6jLp%b$wE zlQ#7LiT0h|Eb1WJDjUD7<>jx$%XDp8%a@*IxLl!~k5b@KM_7TRhGA2&QqEJFz|gcb zjq#h@W{v@sUC|i7KvTcv&?P{v0>*^76}JUFRS=;@0{M!w!NYjl+{_V3xKM$NFMH3t z*28!!wvGe#(8LPmS~H2wxWM+w#_vg}UPK%>oxfGW2D-_{JLGxA|Gvyz!P|GMoLwyJ za`1LO={j?-tAe%CQmJT%^Y>*INJ^X^1QWmVjE?pwNW#^m#Lj{O1BDAkW$X`?Dwxi` za+~K6iT^!v+c=3G>@!!x{I@n9t2W*va!6qn@(+|Au+=K^IfM0-I2Y5b7L`%5!m)nE7F@Od5xx?u4 zzONA;qglw0v&}e-|J^kAV{xXpCfPTaEx3@EM^7KD_!;ROiyP!#lF6cHQbGddmzjHD zQ}lO9jBvoF2P}Ecv*P~Wj&{7i6E`@JUc50e2bW4HhY zsQGoyW&v5|$<3HO0(2M^p2Y^5RGaZ2G_|I?v#^gWUu@2=_ z2kw*pPdNZ-@}KNjjdGF$z$X834gj0{pL9f`9O+nra)e_U$|oGaHTe&BEI~QcflIjm z5XVB4!Hxwe10A^Z`wwu;2Mo-=uVWrQ^mIVa;NQ&=jrMqJcO10xjl(J(qrshuv zY1e*p3Ir^ad)BzNl@v@^Q z%1<0UP=4$H3e9-Q(GBHC4w_JN0hH$c83h20`KK2&MVVIMi!!AEurdF{g2pIg3mT$~ ziY@?d%s;BY2j!*$Z9h_@ckv;n*;T}b2sgFd|ddreO^Xc*ASq1iRp=l>~7Iten{I7o-FpkJL zSZR<~L+G61aWrJ;2P*0Up%@*L+d~@9eh6$-dH?Liyga+BHU9N7);h+q@ndrrY5eP? z_IHfs$H(Rdp(`|tb+Kjt!ce&v>$K;Akq7LY8vzRe!7i%T&r$#9D%rn&)}dt~|Mi8s zP)9UwRF{p3+qaVM%MEP+ee?M~w_w_UO-db>J6R^{cD#~x2jk!gUE18-iHNF^{VN?- zTcD!~%s#|BEy%s6mL~Al%W_NQ|KaUDz@j?3KVa`=cVQ7J0*Z(N$~LfIFIcd51-r3f zjlF9$7O-~(QD*78z}~w{qGF<+bqE)KY7-8X~9|qC&!MAX^Ih))HEi23uL{aCPvdWw# z4CC3W%r{lSaK3h}xrGa9eJjyd540P&B`$9ysAo?WJ1}_)p?JLw^YcdVq>bhzPc@wD zO5cE{>KbnI${VA2fsz9}DD-uD+F-|kywRi!RFaioRwZo0u~a=-T@NNMuOE^x1v71` zxr3;yUuZV_dQuEvD}x!!RQf)2+tNHZ&+Q}Eniu#D$=p!T=&(n0jj&ed*g@Gmh~fvv zGt2qZMy$YLp1}R{&A+Ne9rQ^R);@>Lu=W`*KY7E9rN*Yy8Mw8TCK)D8uljT+;5s=0 zcYf-$xvNH)pwtv~`V`CFvve9E#CO$-3>CXGn4Hh%39h=P0(&;H=Xbs+|u-=VQ8s(j~s1{Ri>zfzG;-d@(iu|+ZA zhF9Z#vztcOCV5%jWTh!l*OJ}b?O%^IaZO#v)BiBP=pyRcRqj_A)l~V3Iu)a8i+(#& zzX3eRE%l~Wm{$6t1738l_-s5sUN^P7hChD83_ht&aO#g59muvWx}r)>VOZ*8HGh1r ztcIxTn$je7ooWWj=M+BVMw8UuE~Lxb?X==oSW;cjO|$Z##M|lQgi&V`ZW|YoyrQVr zXDWWMRqAJI3Lm;v;ffe6!G7jR9aCW^2R&Vx?^x&5;VRW!V&{~^VW3#I_y^rn>x<;z zwnyomRCm+0x_%o5IPE0G&M*_4jC1~x~@;%2w@ZaO?}}3>h8*~^+|25C7-u_ ziV%`^K`|LdXjp+YZ6e|Gz->$N7T`Tuy@OpYdxzF*==v89PkrhpEKV7pnxoYX*%6bs zsLTt3I2VW!N?V#h?DuU^Hz=k3z8O`Y-r~`RqHqf<(at)@cFjs9A5Gl8(jflMYWc z3N$FjY}}gEYpi%{+9(y*nL0Dq2miBE;+S>AFMveu4WIWq~d?@Phr%J4FW#pr_kSfcJq z?@H^kK6QXfowtGxG3D+KLUfR#czdzaSJhE`!PeAW0L!RA+r~*`gh;gWyNm|YVI^gwy*e)m=_QGfYhBT za>*;bC$395!HQUV1S{5G7>*=!^*cU${T@|G#%@oYBalvGTR9ZB(Y8ZSowTsk?8Jf8 zEN*@!HA5iZKFHxIKNTQYsSZb-yCSp~la@DBe3Wu2tZz?(Zc92CPO|uO?t$$1Rrjui zhg0nWdG2jh46qptuwh7Cx$-S`;i`M{!lS97r4D#Xt^r7#<%)V7jouO{%;YZR2%#N4 zgL|J$ovm_4mxLdyLKc;W`;a5-t<=j(P)T^tQp5>#n??0!;??=o5=9NMrJStT7+!TI z(^)sxx0A6^)dR_!U%HSwM2(P?1&?z2q(qsQlRS4o>CL8Z+G?C-#D34Mpok!vpQXN` zqAMw58;^msw86 zo3mnEo+9ix_O<`Etk4mJ< zE#*i!mA(JhX>WGYkk*Jx`m}KZ!L;Q2DU~#?1m2ph#oI=2QMBmY zSmKh{Ac|7amZDU2C#eWTLlBa6DQtf~MR3g+X@g_n8x%ib4X@ue?HfU@TT5$um&31% z7O+~6I`oLdS^59EJJ{dd2oBS8P0zGgfs#-rm3kh-mcU)NHN#|sYUikeg{x@q#cH9Z$wIOoHJ*U|EL-5v&j|MPJ)dU?DjHEZE|eHMSm14 zN?jk#r(H^YLlEkg?GF>RG#`N9Q8+FwNgyvoY(q+yj`Ob{D_)-FU~!SRL-~aXX>SV9 zX6%YfTkNKSk6#&sI4iB8pw;c!w$v6_^`WRsES!_}y*nui_BxYGm9;6+;hUVYJS|RW zz$YzFTcoD+mGEM|mNbX@{1bxEw6jh^nviyg-0u*BbkV4OJY-E8YzVLxFS4SP5zsXL z5!K5{wKt?8!YQQNN`zA|uCvl=!aQ+Z8f*$J51K@MWaHu<2=rV8JUs4PZ^o zuHIETr4*A4$6?k}FVYoFq)R89j`K0Z(}t<%FFJ$FlhBv}hLdQ+}`$@+Z=u zB4~o`l!n6tQehk)6!%?edHUOFUi_D%X(qIJ% zj~@thH~idySkV4eD~?JD7^vdr57MAAhwsihMY>AcrWV!na$hoOGBSj(bG5Z%q3``1 zQqe+k%!CDsn=vzenC3&mW+m9}R5tHo+G#%NqqNo{Ns^sXVrtNXKm8=l>_T2U&|nY0 zsO+X5^zbpXR9~jq1d=o(OcrS{O0K5aT%4lhGWTD6e>3fv3pu=iiCL67oj?64O%_rL z79()b4`~loQ6wiNZk>A5vKZI&Nm|`&8)n%$RvX4oX)emO{?&fHi4w=NW;N4iB*(RT zpXAR4$S8Ry?UFlrsQ}A~xrFMf6*UJ1w=q)Tkq@UlO6#bC5Oz07Bc_zUe5tG{AKv*% z+5io?m0;y5q6Ih*_=c4>Qc;hgUVHYICS8vxV3F-#Z%y1fLM*$c9}sms#V!49p*z-2 zIky9SuwRtm1iIr}0&S4DLN1@McS6PEV;jcWAk3{mwoVmYa?G-mR_LX~ql4$YC%e-w z-Ak)GwY8TGGE`{hTkIRd+WM!@*XmAg7-549wSrkxagRFb4{)D7jdQXr#&J;kCzNP3 z^lS%T5L{$f{YbK4J;CP=bv^8+NZ&BW95{ zEh0k*D4u>d4rK`@iAZ{5zB@7<924X;xQ00s5W2A;ZPNWUx{uACHn21ZONOZ-DpQ+u zUw7SQbBGNhBWIl8p~^#z?gMjMTR%4GPp(7>fXy(fYIGOO?QDJ7-Q`CsJ=N;oF?Y80 zA&v)VHLSGeIde^0ZzVlbIS@6vGazJdW46CBq!SO~wL7Gj;QTm`7;4?1`v+PrP>2>8 zEZ1f?x|-a0N$2$18d3M|GatRjVyF9#<8gh{krPYz{xk0{mcAdZyub9!`{L5~amxD- zpLzdL>H9h9ye4^AY;hiK$QXspNgLAJ2+48t)oen1dTrKX_H92l8bYyWK%9A#v9}pl`ir$nyMN|!^F2H&y)uDW8vMt>Q z0;4Y5(npBGNQTOj`GXzl0~PNBq-?S$DudB+zAGK{1R@`BOh&_)u&o~J9cep zCj>V5^Q~U{7HI0g+djRK0DfR}k!jBg{c}Eu;^&gnUlEX3YT>^0{UXfx5p|@dNWqW_7-40pF zDSWGUpDXTc*gDrh_9#33D>8cD!9wS*?8|~0o(!O%1ygvoHNB?_Nu;_pN38m$Qu-2& z?&i8Nwux*=(D85zZXe7`q;zjZ=Bb2?8$y?wMts4D=Hp;;d$Q#KFbW?v-9!Bk$KIvz zbo6@-DWwxw!7t5P@R5hod$>_NCWMA@bnWGgmd_C_zn`d@Ot&t$GnGE282Xp#`%vep zSCoEKfYtixGwBUfWGKFcOqGR5iaoui z;K4o4da8tY8F~oAAQ{xoFhGLp!O&M)g|fE~ZAx*7OL!Ti*Sg$ur5Yy|EB*>8T+a!qT^_wIJ==JL) z20g#0I@d3gpm@>GlOQ_R&y^rL*UyynC}&6zpzB|d!cZcPGs@l) zk5s!CfMF+uJ1m3Q6vz>z+zLlmghmaMrK}aUIG9PObWpB}) zvz2CR%IE1*Nkj>Do9-&0J&hPLT_i#Pg@k!C-+||PmS+cz?)HXI+f07_i}WM4NIIG1 z49=Kvrga!q$F-t{?oP^&=_^S}xr-&8>)q?wW?p3l_q^M%OYyA(Nk{~~aOgX)A?V1j zi`eNY9%^>$n{+K#-AaF3MF#y~t8X;<$5!0fo!`=JBnM4m!o^NXU1cP{72Zon8p!!P z=6*Ud3M}A5{!IT}M7p0#(|&Kj;vS_B)aw4+yxg{!cmfE^da;sP8Ns9@_+!gZ+aebF zI2|{d|7=)bTgVe1r`PqSI9;VemAD>tLpiE17D>Lii#X3-^tZQSGct!8eKUeYwGE=b zZR|{Bze?{~lgWUVe_1!3Wl5%efX?~8L#8U(mh71M zQyCv9=CySZ5$62}$Uin@jzXiZN;i?`Z7dt+E@RQ(cW*?xsRGn%VKTRd;k zFXIj-Q_I}IwuVwhIVYphyPI8Yt4rhb_seJx(CeXj)KlWBv5dN4=)%Dx{VlM+z^FE| z1wYmsBymou8+?ZvvC@MR|ZVM<1QQSZYK zMFt~*tnw*lKk34%5SHMQxsE=Bh`J1JfpGpdXDmnwHYKuyk9ROlfn$^zz@K_F z{dg74LK$#QISe`}5NZM#6gvI-cVxs0F1*WJtB*3$EE-?^^huIPE8Q7b_HL&FdPZkh z5IeKR?HYl_+0_Je)qrGPy*U=DMC6GD5ioJbAdrtqA6z!B5m?9R8IYbi2N&}12WQXl z71Y%R(g=f7ReRPDgKJ!^JK7&D*y+zQdJw~7#8AWjw&UuUL8$O^I3ngR&S=E}0UzA+ zmuK|ir;cUxL_-EXByl|~mkCoSC~e4vj=KmdQ#523zKIEH%T%}%X6LiS{q;w)f{!_MNnwWhg*UETfN*yFYHmsz`Q0T#4jh+~b@N!h)(Vjug6b*AXmhBZ5 z$ZwppuEu~Oo{u#|9S{lS$t49(nwB?%_9rc0AkOAi7e|V|c}j@)d1NQ{?#cm{sREz%b4F(kg;Yb>PesH% z))K=)`t3i;ikta#bXH=h6wMO+{ax9K-!t|?=o))3tx)kL=b<4Yi`a zJ-o{s7dlCe6P>)g>cIHnaMP=Jc=bG~MH}tThz;D&f^iY$ibRV5r zJ$ZD4%=#eBUANbj{P?7XnVG9NcH%_E}1*=M^CigH`!-Y ztkOC|>z8<^ZkcZbDf_X@o#!W0v)jtjgCzZ3pEr=ytp+x%CIZIF2@w1v^v(>9>Cm}3 zkO^;lx2ihQgJn&6vXV=kU77c&Phr4Y^!rTMxSmagDks5t$TBsDnFHO&EE~xdyFSA40 z4cnJPq$&J2XJ)piR1#lI$3pZruxxv8q%-%j_hv&5HRT6~7l_pQ8&m?mLsZnKiV*(z8R(>!R zSRcYC?E=*vzHVnHSZh33!%FDa${bqw#4X#nJn_8qD)T<~>nAn+ZcK zZxVo;@`T&jFcXTj=RBsrR}rH^k%aVf*iDBqQF+F_FK2%1Mi%MZY0tI5Gb>DBZNJQX zN7T zc&iT@^UzXVG@gID_;H+=~>6HBGt>Wy6gMVN^5c3@Hc!x4UC4&q{e*v&b|2gv`&}7nR zj(yIjanJjdA^A)?0b~jD>G61VwE@r$(CgUfQmeBKZ6#nMk6lUwSxes3)lwQk)KJI3)mK%s-a8UQy_s)lShy z;0m{BR8Q{x{z@3eCDzVbgl|`~Zg(@MCNF5`4c{>@_>PqfMciw!Mf3T4?OEKL^?Z48 zgym~xLn)q{{vbR3K0}a*mReXzz1I2%OC)X=YGH^o{7<*-HG!56%?@*VoDjT+K_99PtY{D#hg=+7Z-vc}>3 zewZ_o#f|=V8xNPA0(OF&ou`B23nB;8gp#}Bu7LuYiNn1nM zxs0^U-_h|fm3JMP^%icDh)`XBmg4$3lALcoMikIh1aISn9TtQ8$W_JVIh z9N&v2wu^1R#P(@PRBamfP6;G4?Sxu!&JbLYi?hB1u^-Ed#91olKEunvBd2B!Rtar+ z{EV#4f>ysLeX4}zZHQ15w7FfTpnwXC9tejEFt!8AS>QC@>jx|efXEgeVTo>5`^quK?_6a zHu&gL8cM>yf>&ZzUlsfyV!oBTuwp5O0tV_WsgY6#HviY@3YmLJtIy2nDZ%aH4HDKU zd$jtv*J$*q_%Mr2@?QNaFED2f1$E0-j20@EiX;Rpkh;cloKkhe`=$Ewougr|A@d3( zMk?bM8ZpZ^S-A^*8g%X(zOE%v}{6p)?iT&SB9_MUwuxm zhgf24@JwcLWMvh;nnkBqUU`!&q3y24Y{56)O<72*-BW2C<=Nvt7xgxpNhC`+SFaUE z>LJ z>*mk&44b$cJ=&i(SL)0@xcOoq#7)@MlH4ox`DV3*M3xm&9obx8f)27;Yq_Xu|EGz} zFJnq?fw%zG1&1-Pd@8TGiuzZW&nS)n`#l=8dNz07ErNx!KEu@KvQw9`dW!m2nf00) zXZSn|x%-i5xOg5qIGcktMcvJL^d2dWHe<=^Dy`y3bx2g4T1h{}6_&FLd6d_c47 zdb7BD^+$4q)5B#y&R}Z{kx$mFD)7Jb4E#m?p?}@E&nngbm(HKJ_#Q-PPs@P}*m{_i z^vr6)AD3jQu_cc1%jc{KU>oaM@`RMOgHN!;^r%o4-Dw8QMILwYV=)bM(R|hfOB(3h zl&q;Nv1RrXB99Tw^UL_)l-UbtYMV z%x)44_v8tx?7v)8P}M4eTIKIK5Lx}2>Cbz*XP?3$eY_0P&Y70Cj9iwlcpCOS%2wj4 z^l}=ngU8>&3x3P;#)l_(x4k6pDT76kLLaJ69x-Yr?J*)8KtOg!1l^;#YV<|he5Ky( z=Ao6iT^PhQ|2hCr_(!>?mBd~9%F~N=qbQH*YMrOk;37$X4Ns?U(W*!r23B@6H&Kxem{inbwjBv_D&R{NYvzrfR zu4e$JA|O~&E?wPSw&PzV6e#}0zv?aZL^VKnBv0}(+Pss6d^4*N^WM4oD);W59V(Jf z#BSwkNXRe;Lb&g8x(nRUCp%p&3}P+3FDYbfu15cXxu-OcbzL;7?8bFrM^g#D5@tmf z;QShX6*;i-tf7B5#h9*VF>kCn#&5)A!*^6{f-vxaSp&KxRh9TL%T`@oOy%-N>Xrok z_Y3bHfUGyMcRl1AIM!I+7jkk8yYc%066ouTS&RAJBlx5JL4!dTA{VtqRQ1W($2Fvi zhVjSTl|A{5nc1%^N@T>T_2}&U8^q;``vCsMylfMl=acepM^RTlCPxmc%R4X3J_p9< z6TbF?%y{tlJ*uZZj8pe4G)G^esBes z%-G78%+JiLq!^a)XRLDM_R#1*!c;ylLpK^l0Kx)UE-T1cCgJ|#pDu{c+%>;^rZqSQ zR3MM@;{8=clVwO$dII1s-ipOVTW7J5zuM1X(XXt)p?sC!jTzNS0Rtq}WkEX!+x6b`kqrZ!lNz~TzQP+bL0ovNSXl&XCop;xR^5c8N946+OqS#jPrL?~@s!U3rLT#*Ocdul^@ahxqnNE3X^-S1o;YI zS-(>ImJ4G~(Bf9!>o~tEE@0;fgW6T+$C{)JwERi#ImZ?8EnR%32;~EfCK_OHEsU|a zXvn4mfo5uTS8f@4fh`qv z8~jpRNYh!@zpSS<2A@nXX&Rq2&5|i<3{aUHYO~n6*%{n2!!p@LH2Bh0ptuYp%mSPF z?Uhi9_KdXA$bZA*=38=902)$#b)y4>F?^`uj}k4Tl)L16c&9{U1nxDWOEMgl%JQvo zWTA1vF8d=YjNe*msiP7N0W9=m&-RttAOO!4L_<9`B(KN$s^1zQx!+{zswO2p?3MvV zVvl~}<91ry1&yJhStHG)EU?P4)Yz?ln!f}+|6!-T1vM#>ngQxKLr@u#SBzeRxi?7a z=Eno}T0Zt5)jbsHgSn9{csrx3Tgb*R399~W&UnA?g!%(Dy-N}Xc*S}(Ii!5Tyl z-Ovzn)9=YX#!uNTJ@Hp#3Pcu4aU<%nr+Gm?up84|TY}#W8p4Z@WI26haIaqV(=X11 zM1b5xhzCxR8cD}X4q1A*kP$#(dFP9n<&m#1A&o9gB|+zZSh=_oFy5sphT@-|S$C`8 z(0SDIErwv=3x{VX3%uD?3yy^a%e{~MZGVw(T0R8)O;x@RcYgn`2Oar=1x6MNDbNLM z%Ao8TYJEr$>Pv%;%$_H~a{08=%!00n^t4HOm;{fl>a(Qz81c`kgHv(?lpoT(;1kPG zQ8YATXNpF>P+1^)tyP;<3}oH`Z1nl#!E)g9>ooa~LE%~?cN?{hK8;1VPRGbGtU&BZ zSUV|I+C%&AD4p~DsrEY}agH$0Py~|YYvRrywaNKaAVg1Wr6^5SRxl0~4UaE;b5vuY zVj&|RSX!u6@CD0Zp}X5DBE}KaZG2ICBGged-W&>SG=#10AKsjvt#G11qt>p##(#@Q7|OGqqT;vX&%y2 z!YsvUtde5QlNPHJ7Hi4#7Yp`3hR!T$nAOCw;4N{?9S)q&Kk&D<7HKgMzmjJ50!u93 ziHNO(O?T-}2utoHd9s6(+&uVuTC0bKeG+VKO7&a2gNvq&5ap}Ruyk?dtsWIzY8bjP zVXg&NE<+B#EX7`$nW`u5?6Id&>DtqbCGdY z?IrgSg|fb>F~nl5!-;E~s(}4@$ObF!8io-()9U-e($rkH3 z8pC*VOIbzP;GL&{`h|3(?7~A&T4#cTZgggl#sD)p!`M=I{mK>?EPMF1omPYt6=!62 zU^st1ry(ukb$xXzQnnd*!5-^SH9>Mrd^q`1X_4t_r`3wty%N}fI5SVI-b6Y%yRzs_ z_Er3JhP8()K0r{(mROZvahD6aRw!9TEY)OwGkkui0-1WO`LMbX9KGFANDWwzw`tDs zDet>0=Pa$_2=H%5X(LRX*{gC(zbahCG=3&;+aTfDW?p|zGleMu^C49^VGR_JOb!q! z#G=nittGpWSf$LAYPiPmqIr?*%GR8=Ca4Xt*8`n9`h9qL=MtvjQMaxzZRU$JU?ypp ziJTwxB6#z&){k68!|cCb-#PzseLuDC0XXNeNt3-p$&kP&<+u8&1n{9EttCJc zkq@l(L>OYg0$HK8%e017=IJu5F%CH|RiM8SL?TwChsm(+C_NBaTo0{=@rTxR8pE>G z7P3bvJ4c4QFI73Kmsf!K-wjBULkIrLZ0#89De57CMGx{&SO~O zB=$`ZAw{XV0aRl>ph}jy^|;Wv0e{Gx%t@c#g7fi zmbM-hCk8KQnnUcy1}1zk>TM^|flKJkg5UEDU^hPhq62N%dMxoLYZm=#2ioDo^IPVu zbQ2)?tfYZ3Y%+J3eXBlNhlSkyPh;RcJLjB2_wYCPU%Ky}^Pw8q1k0o~jor3w@{|3^ zG=8nm524KBmi-BfTiws+pT(#gV$>kVen1444?$ezppO4`&zxhSMV6Oi*Jwi1hV%}^v`r>om5 z!mm>?kZ5KI<739>IM5z~gVnFs>~GtfA*8%&R`DIva)zmdx)6lrAnUSWSIV56KgkPm zhf|b+9kz{Mn45#xT=f)VRxH)kf)L29OLGRf z2=)1$z-LPGUvwN3Im>`&FwLYh*AcQb@Ie{%mT^}k3^WqITc>?)AZgQGV zValUe%$a&fQE+D$c+2Qa->N;j(FTD-V?-OoeDwFz@M&9e>S|Su$Ol0|6evoku#BAx z;bvc|y01-k0Cik9PnJU!!O!V#&dn*LrR>egAbW?`7z{a=u~$y!1ZxZybCitS0Tj!y z)H27A3CO@?r2;b1&*?#rc(TEj3=IrfEcIm0$E;+4NyWc1=jcILvXi>iD;H}#-)#3K zh+tP`H6x3h5Aj6~x9-U>;S_*(b#h{}YG0QK`wE)gCo!L5^7|pwldeINJw!ot5l~>O z<}vG?U0n!}4OomV=My52XG`(5ia`&Hdpc8LZxCJekL;`ewnH5Ig(*`z(0QE`L0jug z%MHqT(UQPd)=38GefGVp^L>8d$2kwwq4QEJTG6w9;F}~G8%DJpo%&UvNQOdj*%(|g~#njhJWIfOn7Y!gZ%Qo`JAj`xuQ;eTIhmaM7QqQWGXW&q4 zkP;A}W&N)_Y(v0_s&p24AMCS_l)wLE$^nJ&c+qg!c^H(c*y?c8-JCB#%#Qs3HH5KF z$L2>l4y3?C$r#vsn#jl8E2`9@G~QBdS$d6#da~CaRq=UQ*ReD%@5=o*&OItP zJ$Xr9UOtOMY-?sNe zdDh+o<(u|yD9_lVQ5M(wr$7UQZuSPjchG~;=sJs$otPGzvV~o54Wp5e&T*gi^h>)?Jybxtu z8QxpQHu5}_tz~#`8C%J-QMQ!fy=816&qUc=hWD1Si45;8qfsXBEn}EG6@N66C!q|M z<4`t`;jv{5lHqk_tS65{SzCs&q|sZ(b<*f1k3i`u4@X%`9tK+UhYY_h!!Pmxl-Fdq zTNy6PfTiI*8Spc_Bg1jZa9#%d3~$MRpW%#5f|DW{@QXK`mPyESN(LAWC*{^CPsjkK z;keuq4A<#d_Q52|dpH6!Ylt=K)({eFu$qy% zUTQeK+eR|$-kfnnUfy5@W_dJ?~geE ze-33&Nlhe!>>8bW8a&9`DLr!&g-$%FXYK`8=FsK#kRp^ZD_4%DxVe!)Mu>t3cxJIDb3EGwDN zOc5f#%8I{f?uAAc>Q~i!Ufa=iMpti^WWrD_0F7gV3@;aDf2^A{C#_FTe_sd(fOHnM8mfv z^BPsr2CexBR?zFyBY)S9lCiHGeYkh&cv@^*2zeb+n^&|&crg;|mlQaj6}6mprP`Q8 z!%x*#vutW>pilzjk;|=Sm=JU*#1qpR|#G{e5l-Ngb2UY_9U*ug(t- z75oWn5lTvfd2SkL@L`0abYqgrQ_m-kpVnU-Uw-?^?B4 zVnct8#^`3&$g!lHd-jzYui&}#yjLP#fuud>mEkE~A%f`hUOmFALC=5nCteMF{;T^~ z(}x5HSV$#KM0im!u;DDSxi%=d>%(i zz4FeA040aQ9Rgdd8v?VJew7ISzfXL-mceqAXe2HC1s2^_Ta$$})*^gaj{h#6IPV^Y z78mTMPU(}^h&7#h?LRr3@{OPkU)Lc1={wwqCX(b2e# z!n997OduuSA)5cNy!C49jy5%Dlk*cj^Lo38HH?(7uo6J3Ppy_wTN;*DQ$zTJCFw@& zcYZ1u`P#eZra`J$tGusbHDMNpv2fTEh2p}R72Q zsyAFKjG++x-B|y5HEXh0W^8VtHToyckYOcbby}@ke6*bzs@4LlVD#Ml}s46s2hY)N%vh2ONJD5u=^2Uh(nDFU+i9Mbi z9z!{B#+C~->$B#U*X`xrQR{pZ6x>k}%AGRT3_}P&fORR`ed|In33+cR_@g7)Mmz4< zoQJID2*aVov+Be`j^u@FjrF%QmtpslNG=j(&jNQelo8d#8ConkVO$7wsCn1eoE|&e zSR~;XH(pd5i63W4dIKz`Ph~&=g@K0BLTutguHnJFNQa)1}h{?gTz?cbgkORaTs_Kha5XpD3d zXhw&56tvbrN4!^-UFi+78d#JZaO&$zVZmc=<{hB4xE9~4b0~$xcXK%gJT zYyFn@qZ0ge2lMIEM)|PPYlhbjmQeqc_%H0EFYmFFiSlEUrBc_tTRMzn^6G-lD+UO}Z>q5XyxGVB^kqtzB! z5#2PhmFGl;na$xpi?#qYh+OF8Uj_(#u-0}Mkci?7KN-D5gbQH(0G8n88ODq57Y!5& zy=|9N2+Td&9b`i2K2{y^5|PHlGalm@mr8WDN1)?VxU0W1Ew1bL$luR+kK>(fp#@4JC5 z*`2e~{$d9Wwqc^NJB$5&+Cd&Ssl`=@_rqU2fi0MC3;Me+W0PaHrjwc_ zBKgK#_}L zeo3^^7XbUOu;^C>7QF!rq8{WmYias0n#DX&~FfXFwT~wR?9008{w#| zfam~Em~Q)36y=xs{F%0{fcr{bFxM8UQp>Pq*iy9~)C!+0w)u)`8CD9|9o8n!HW=Cn zt2E=HhgV$r#g}Zg(e4_4bA_!h4kZfcRHieiPtboEX|FW=r&YGPf?AHJ1`%Q-Ug+H3#DG|%I4p+J)r}2%m!aO+TX$uNLZ=(Dd^w} zeBs-{Au#ntI%lF=QRJZBl@&h-jv&$rn~&n{ww9uCEW3QS`8~3v7{ZE{-q*0F51YZ* zHzRN?+uiRzj*4A2v8JG|+T(=n-gXt)X()*&2%9(tgWeDbAhK4V(0K`oh)5hXG5O}) zp?qY9?Nt}i7{?C%7I=jE>d7BlY-)c_}Nb7OX_CQ5JagS4Yl}yKjRNi+s>#d z-QQ~!6czo=)fi`{i*{E&?`>P6pf*lJx6CIF`V>e)-)C{N{QkE815C`b>S+)~EZSl_ z>6G0P7^;mRLKy+eu-S5191AijHqdZEVmI!LgR4XQ7g>70 zgU{77ldj$$fqfMdVG}2O#2eQogmN zQOd%dP7|M^F4~&36pO(;&B=mFY*+2EEUxD6+Wg56Hc22mgwpte5N-QYO*c__&z}5Z z3lnOw7>#eRa$@0C9d>I83L>S z&=!D9hCWBYw+n5q{0uhK{FZJvv9G@5kRUn~j1tp4(^_!wG#+w^Klu;5gqbu|7>}MppvT9>P zJJiG5%2Au6O|8I!gXMPY#fAZU*kWI4w`fF|o@U9YaD4xMIOw?^3;vXU0k8I5s^Sz||D!8XwqQ{1?vvmHw4 zM6$>1q)ePX+OQ=GJaEXLp{0xr0fY|ib%h@X!crF#y-jmO@VwHs!##LX!f#GZvSpMX ztOlA(aiVb(7gj{WcQxd^d@Y6V_h;E|`={e7$A@_ApF+AG<7R&Mq@1HL029b8*v?<= zB8{wtNp@o;&77hiWK>GzkpX@qMHbRUdX0KEq5_Nx_7KmY;w5p?WfjRG?kImV{GG}Z zM@P8}iuhr)G*}2zK%g};^8haOBWN*`#9+wk{pzP8Ox9UQup5k`9J*NetPp7gVX>>|*{`17rk zq!nPW_8_sH&+=*$Swj;kb;31N9X(DH++*+aM^-5e*9cggZk&FChb)QM06{CJT|P|@ zAlSg1@dTH?lsrlS7UdUN=7oz}=lw=De!HqZyIya9IKlqTGRYU`V+vdQk-8O2XuRJC znn?s-smMy0iGoAuAD0yXzcq&KQ=o!8o9?e= z;B1L=mp6AvH(dl1_t`JK=0c%}50il-0=w>)$g|Fvw?SuDRM9@YUTYzTybH&Xl8bKe zOf4PGWYGxKy^HrGjwhbVwau4@Opw0DT4@OavsmPc?+l_*qWja}s!Qfv+n1^SaxC+a z11hGOdUbL6XD<@9C|l$fyt9wI97l>h`EqkV9x@0th(~Tb*~*1(h@R{~VI5aK^Q^Q^ ziHHolb_4f@usAI>t~8namarTV znTj{)aBX>wuhq&P6*PsH1AK!^4dd%P_C#+u(E(>_3w+>hsfR{r#S`yIxS~P}&8r?X z9}@3-n#Dx;;oz%bJXH9Hoi*j9qVYJtc}_x9x{zbi zO^CS_kNOHoST;B z_C{fV>?sNzxmTck-bD@1>@x17ya|ZxD>q?C36Z^p&fF(NMhMqV^6607Md-?l!sK{C z=)$A*@(ED|AKo3#4T$6T1@7HcehRekU<+O>=#PWao!yU+*HSLLT@_(g;q5Bl;KUklv=)?tXU!Kv72?3&+sUAc8g#zA$Amv^9eH$98K+0nbu#>Z;wJf@qD5#xp&~K}+!uK4w>=NJ zkX_<{!WbDQr^buy&>Ox6Ryiq zMl5@y?CBhA^2HaTTrsxy@sC-552%Ao163+8%;p|TeDKJXZ<{4A6ZQEX4ax0T(f{-6 zd@UM3OJ3^(gRGD09Y~7tHxMX0Uq74L@ufiBTgoZ1<|%2lUyyw2ybBo6D(LIQWRNsfED6}$GbY~YX6 zsFxVZ+*nR_p3`P5i5C>f%(cQi`LLkE(Fy}R;*wAswoD-%6p!|yP7Y&(ET0!tLlx#2 z^4Rh^eUnS(oN`{-h!X){@7IV$Z~r+2nS;Gp(P7Dh{SfNwpA_TDpS~i;kl;OLzYH4r z&4zCFVf^%dxd#rqZ~rUb_#N?$t>L54Rf4|*MT@QF*i`*MgQho zcISe88Bwm!yiZg4WoKXeNFI4nrfc9&g`Up2J$cHO^k$kpCb#l&xO zYnM;?Zzs5lV_K6{qzAypZP8I#peS0lCp(7P;|P$UyW1&GtH3Zs&>9~nEwWEk)yPF$ z*XGU|q7ll)4VpbTvgg7=qcSAxl&`81$jYAse(Tk2)Rjh4Xrp6w+fR9)xcoUhq@^AD zpOd?4>zMc`cPs7DX}l!N{<|yG4x#;fbYbe|_P#7~`U_vvSBpWwOd9iY`;>C(AE?yO znp{#FU~*)l8$B}0`Bl-i+B&uIDLx^^-{$A`Et=Ha>RBH_tk5g241etD(wrs!;O0q) zu#@yj4G6?>dZ z^M0KD1&zrwakhOro0OK=h2cRPtf0wb?*#iaq5!2^ESTOXH>>&FGSogn(3oIyWU7^X zxwVlOEwn?adLuAo1uGh6@5G9S*}Yh;7wz?{4XwZpN{(G|cCAXKWVKV0bU|q*{|N2_?d8JYK{i*SZ?AvAbjqLNK z_Iae~*iu19Bv}3nK4Ie7hRK?-zi-8HQ*&H^R@4L;xi_0yLR|K`wOMlwtn@_djMm zFyI0I(_+^Gvl_88!J3r9w%=$J>SiE`L@wnwfE<)EK;z0=D4H76h3*u5<{!H9cTd=( zT)E29#8q$!vM*&oXeTcf$2{Ur)g8^z)Z?LN%AhL8!WPTa8DFx%$!<1u8PhE0E>oBZyh5qs4n_xPPMORcMEGC7s# zH8ivNTJ>ot|KpGblf{e-Ys#Lk^Hp3hmXjscZWjFh+YQmu&3Bu8$zYyzg+>1SAK3pV z)XL%;AKF*Lkegqw=Z@ThGWvN-dtJ;mbk~?oe(;xdLnEw=$fS%#B(~V?-W= zkTWm#6~kOsyV{ED;vm2x=Y0Vrn^>sZA}-4eV^fjLo>g;ctzpdBz<33U;PR zPo+W=x|D_q%PEZ`N+!rYTwL%y*q=5H}aNJg_?a;F1D-LKZadgv$1Q_rK zS)Pa|HhS=Dg4)yua3~Ll+on=09IZT5I2y?A+dx=6Y>0)Gbn(z4>mSsw-k%O`#ujv` z-P6}>}wQGq*nL#{Cqb@lqi}yGwaP?pK_P|yPk@Kq@^ysJy@cCS08?? zU{_!4uxJAI9sYZa!%NwGu09G^$#}^e$E(VM&9AUS=*ld|=Etz;8-2efEdP$h&HsI) zQ`JAtVHN~|XODM0#FdC729OK1=NNWvk?fHC1oqby2Un>{)^{k{FEXqcXF(?~4MxqRIj6fOafYEWduOk+vmtzP@H^*R`qF`knLc(z!3x?`?0`<$^sWOlGo5n4 z4B2$T0i$EnF$WBBO@|#YB{m&$(DvQ$fB}Ii-+}p=91cB7yF-Ukc7&nKbTme}*#UcE z(?SPqe@$~7uzfMT=w7(+~%pw>=$L2vZLSJZ$1k-5mn{h;m?2Odaj3QMR+M zLfOo|5@nbjw%(>d`%;v3?Tb+Q+2^D5wa-CW+ddnmk9`(OZ~IJ?UiKM)$2a+*C~xG4 zp!_r+(a*y#<-LXkc3IrHle%>MECOiGlWS9J|$MPCNC z5l#JRzuzsd|ClI4Szu`!ebn8RXhq2Q#-#QbOcjyKF{I~x?mf%#n?fy@qe8a}H^vb4 z4I(aOGY*9ZvA7H|JD>PSM&Iv4s% zj|XcX{>Ptw@1-LJWVql^doS)idvFtx-?-=q#~Gv9mk@J@CH(OE;FKcAVQ3?VY-%0F zONtyzz!Fa}w{v(nlYGHE$D7&Sq_aKFtaBhyu)S-P@<3}EpK5ft)77Gk0rsaC%3(J| zV*=?iP2kqlA>)-}U@aYVAvl&MGVpZwpF6NdICUmH^9km&@UN3AS@E6RmNY43y?bU- zUpVO7sodIk@hdJQ_l-a@;{o-UapG9`R@X31V=YeCZNrNDnH%uvKW}EcKw?(2@LR_O zBq-$*Z#e=n>lr&%I6Qg$ua0;$HNCLJ0poZa)U!VSf_hz0hAU0|J`zo{i7{QRD0DU* ziCha^0;<^gh)0eP6-Ba7COf%y`wH@pYfN)9;vL?6p^(2*IYx^jg6PII8re%Cw(-ZR zd^PPkc)Cv@iG(j(-M;N$ekmZol?zxxyt&-+>{~RWFcw|Xb{UVWmH&lC2w>M9A8O5@ zgVwN1bMj$FkmcD{V_Iu&Mq9vzse7m zrV0+y5yW?M}Is=(% z^CKNB6BHtDbNy_@80H}DBFw_WhI2GrTj>lQ!qSFV#QbfKg4ch01Rr-Cn#&L|umQs? z6L|F94(~bf@Jp5p(8M~!Y{1@^RfG*kUtkJb1z11~z7;5Jv&85bIDq8~j7q+XehM92 zPTnSLk%yL$2>(w=pn~5Y>xHGCZ&eV_qCja5T11U4r|)!2duOR>#qnlffF>1R?81x2 z6<@^R1#+B}^USt{(BwueVxHwiC15i+15!0`h7zy=zc+Aj$y(wPzmgc}z^Ye?A(MTN z%%L8SE5k2`{@g=~Dl--eDA#oPkH*VnOP!jj2lw%Q|act+V!8hU?^j z-Bm!%X1^Bx3Im_d>$=(d>J)yYGM4`W{HOq)K)`7#HfCub)bZvqT89w9$Q1}FL5%qH z{Nlj9s_D6RXT+q}pPCS0>?3l(K3e#%mkqI4%B)T-XkX0G@%B(c?_@uck2>Ctc!$a!NSL4O%VOWLtdIlt z#4kExc?vhdETt;tnNMOjUgkBFiyg$`-k9VL3L#p6W$17z#6kFKslTq@@rff;*@`%zw;_FNjyEGcO_ z=#=w25Asq635`C?4Y8~8EN>O*6Adgl{E;_{8Bwn#KU!BEkE2B<5AB|`z=;>ndal2d zO^$&UKk4A0PWC)bzG^6Z$tO1%+m$`nO@-Y-j5`hqS3-B<;2)5^%Q+eP^kWn)xKsIe z3VWfaDAoZP__6H_o!5j1^-y0E9I=y51n(d&RRHIg-tQma1kq#x3ySH~h>cGFelU;m z>GulGA_oU`kppr`!~{?FE1~I?0K6tH{4w`K+v1-4S|MWJec4G>Wzw1pshq%OtP+qP zH##|xHSMN;EeF7MFvfjV8MLuZ}crm&hr)L_?u6Px^#gDH&E zAvvTIz57`XC}a_roQdotyy-CYTX4@wb~3p2bQXD5@!*>#sLNpJfTIrh zNJ_2UiR4x3{KrvhJ;)Qzu(%m**4Yc;`=M?%29t}~6v4ZLIlTPh?F1_}ZIig)4E4H% zVh9dAg9QD}$b)e%)vk^yd5*}$tE!F(=gGYmsQsKse~;j2XZwRHi`2VHz`JXPCU+$B zHyAlAR-r(GGdO}#J51F*1bvi%w?VY`_yXU)*Knf#KClTP;df5g!QL1*Z&p7PHy8+? ziW-{W&3QA!9}Ect4dE9E@s>lYJBi{I`SoPYKa8BebiTp zU0Bjib&@{d0uW&7dDG7zYH0Lka{KmVX(Q@GCn^p8lobW;^I+SLs8;sF=k;6DP&Z*I zJtrsAQTQV|x{eVdKbU_~;9Ts>w)1Lt(AA9=CTBL}U3D0)2s~z=n&t#Q*5D*{1uj${ z@9Ulnci9|!+MT5DarW$f@pLP;V#OJluYRSbu*eg-0ZPCnwDJj)?ls!Ll0H^@Q1dVd zbf5{V&$rao;v^j1qX!Q;rk=vEe?~4sHweg&RTN)F88`krl6x8yRA*?xGDi(CQMK6&c0sZFD&5d+CRaJ%8S_l3Vy!A8hgj~ z!|4%XZVw}h!cO-sbtW}5DSmSJF*)EWG1RNnKHNrn3GIU;bV1EBfH1MSpw?CbuB~gD z+>>8_U-d)xz5($193P}R(M(^8u!P&AhmiO&M6^bP=_vCCU#Jlh8Afa&5tgG9 zz_e+F`lMWG%f7m*ay{%U5GDqzZikB9y^bE;WT8_$=kj`Y)gQ&|IRYXIw@h@%r<~LN zfl=LUKdG}NGMy+7)(?%y&uSo1?M_1bkgmJH!7k>1CU*52FU?GvAE|JttIL;ErU@^ zYz24C->R;T_4yr|e{CUTkOO|M0swAwP(%!%7KczG4@l6F1QaUdzBHnkH&)~a6|UKol=L8L^5*bZU=FS7 zZ&h5djr;}!?0~_=gB`4MwSdQvmO0VMVwJ>;3fioKVx!(MtcD*h5!sQ(vK`}xMYA1eicA7q z8WwCF&>|E{4DBqX3*9ajIp+8TI&OSVXRdIZE)Zn+E_G>kWo#t_IX}jU6?BebKU_p> zEv4bCID960yH%@4M+SrIzB$Rm928gp3Md8$Jq^`adgJQ#c%wzy|D0q4QrsikL%=U}ghB)@_pRJAlY@?JApGI6mgx2Qv|O#Puzbm;!;wJ05e{|L49w5RxVmDPXb~MbNq71XpK)BAZpP(nz^3Vew7W4Y-h9{Is|d=c}_cn zvG?V1Z`N)p0*>30v#y~-?Sf-1a~bAGMw!BD6dmsa*ulU1PvtS^M|#Qp>SgVU4nC@| z{DuoW83c<>&d@TURq{A{Mwajg8im_6`0p8?4Bu2l6M~s$smXSCmgKP?N~`k?YO~0} zA{VUzLVH7VY*XWH=e6NDec!D&nYn$f{U#e)u*m24{f?w1cPG)Xtb8VRtf)`j`nDSy z6gY-fRf1~$e*;ybAu=c2cGeXbN>L|kbLRVeeb4yw+ID6xJlYr%`)X^aC&LjHD;!LF zS!9sa#O5ZylKy03*{!T-qDvG@acb6tU1Pp3@ei~BJseQiBl^d?Uvw+AFcQE?>-~y7 zB`un0$5Q^#UeHgdx@;*TV^~t08$!ch^;Y0-h$Y+lKh2Nk*HK-aGF$Dihgv2AlxfF= zc(xvl58YVJ-bdV7(7~oH$(N}ekvN9?O4eS^QY4Rbv7VKs$;h_$mxwx#18(_nw}F^; zQkj_6z2YY$Ml*=r^|ShLUpMPFXtLl~Gv-?oxPd^IU}cz@)|sL>;2gE}D`DM}PFtf3 zS8H2y^kfTz6m@6&cd!E`dvgwZ^LtK|*?xoFo(e1$#h+_p4RWHG=*SiQ_oxcRsmm_h zy_t2F6GcNWGjeKB4zaArn-V|Y%34Fw!BiuG?h^tIB7Y9Do|0rk$M_(tkvv_I%!OhZ z7B8vkO;AJus3$hK_e7D8EaJ0XjiL zk0*JZyY;c|6T!>33gcy7JkZ(}Bk7{!-skS4tTjY}@a$4MmImzFR_h(uf28!Kt!7YSujIKbc)az3V(5?G z=Qw`vgWqS1-}MHl{R}L&jV{E2!~{DM!S9ZFy}W&D^>YZ?9M>#{!$}ms_P!bSucCgR zwk6`WV#6QDxyE}Z_jwW!v_{VcgbPuu8iFeVzgT4&sK0uWXFhH!D0>~Fy0Y!%99?_T`LF}|eI{w}X zE24yeSoH~xdwiBPQchmXBE!$X$atU?*2Lqj+vvNGVu*wQcM*%ow!WwsChn1wU*bjC zR!=bY^Pt(niZml7^mrEhLhBM9@>XE2@*zpUkeoan6;|G{DiG>~Jz)}y{lU5cA;6m= z>&3L|Z<3cEOhhi7Xd{4)mJN2@P!)j0rJru?)Io+0A`1wyX3_;KSTp$Bf)@Wm{sl~q z!5E>_BgJ;gn=Z5NR@jbtZ3+aj(FcTH7D=X>*$0t2@tDoKV@+pGzqWph0#UIoqRT2@ zRoL?XSwE1IUnT`)XJWnfu7=s0B9fPp`FfmVp}=zIAU5JfI0O^{G-YQcMkOzeA3aL& zC|3+K@%NIlzx4((51@d|Poczt(k?nF_`SZMB07Be@74{V@*L)M%520oX2sb6&U9tX z?%;dQoP{z_){aX!i*<%6wFWCI+#2w8PW$w9{{ZQES6C@CwX&a zU~GrYQ!n|k*e^{}Ntj9AYmRl~J(>MoJ0)MA47(MF-Vm#)AktD-!!jroVLem%gJM_= z;=EEu9L2COaX|8N=Jn`xLHGUa@#$oReG}Ol&V>&AI`Wt6r)&g%=aLsZF=ikV@#|%u z5p2ilUV8p~^OR#Kb~zbq5h)f*2@}L81f(2Mh%dgZS6Vg*Wo5&1n#ac~mh9jt*<4?- zB(ZS=V{`? z%EAz1pPCr)x(>1grC`tcEG#9!$q-wOMGkZI<_*GAzIT=lYo25Y5U$gog&&QNY)E{nb{aY<8}_iM_HhOtn3ZxF zJhtx{rS>~Y6^T*@$&%s{|M;AP#16+m=+hi*(MXQZ*{tK%H7TP7YjlP4R6p? zRz-ORHfqo2f4l_@LN0E0(&Cz3_emHX>}r#1DJ_MMw{R*Fa~2a};Ew7%@p{TcosOKi zNeJ1V2Y#2*S<%%b>wjF2QPM5dnWfxLA;$oNny6Udv<>U*Yo_u~V-&-&tu7XK9(_Ay z8*cPRP?GXp2GhNSvc}0E7;FsNDWfVUh&v(ky?><4RAhsd_3G5Tke7UX9(y%gH8 z@~mt~;eMvnXmLJh8b5gGJr?unPm8EPF5(8pu{(#m7TOJN+)@`xSpUb-vg4MDRmzrV zveXhQh+7YVtXQQ+Du&F&Xp0vmb`mAUTjpv=+tb(LNmox~TXhtNO6Usf_5RN!bv0=C zfu!)ehJEOj%1f?{h4BjzvC%>?AF^sg29L9SeuM=6@sC`6SxLtm;jGv42T1vN;8z%u zZ@uv?Qa<)M#xi8z%?Z!gd#;>yk&dZhedpD2Bp>$rf+iN>b-4hFrioPSfiOA-w`lYDgwE?YB|s28Nrn&Sg2EK(La-C zhc5nB_tvuEWEm`|0|7&5XUUw$aEjfPllgyu63k>5^>ad}Iri6ThO^A;y}`LuF;9q_ zAb#0DEppAxN&S61>4j9J$AW0shl& za(*mzmehnVIF`B`BE`=W>RB4IyOva3Rz6MiwD_>}ZLuAxcP}W0kI<1T%x`FbMre!> zyM67QC#fqPo{38Y2chjMpZcU!xk$x3(&<}|FoyeDhZRi9iPa%yoIgrD!abm#4R4QrBANR zpf#K*8@?t!`_-C>wb!Qa93!*SKc*(={7I1`q-?+hM*ru13RqFc z&U)I*ZtWXyX+~1uQXdwu>m}@Ui9e;@=S3x*;7|_HawElX1BJim5z)2rrqpVxumW1Z z1&Saf9zT=UR3WMufkA}C-u){T8~9HwG|s1h7d=evO=Apo&+Q5&;RkS(?f>OyBbFBC zsk7UWxTH0a$)Z76inp^P^;z|_4z7k@6Q)^U`tbCJd-wq3iKjpOj1SG9{-79sM5js| zsJW#H)DZIXHY@Q-OJ{F=dv83EHc28&ru!gmoitcg7?99X^uq(6<#dJ7BJ|;nrl{p+njQ zTqtj-23GvpRvX3Osb`nWjOdb+nwO6FDJt%KC|t?b z;}eEx13Er*V4BTIHdbTlhi@fTs;o-Jo#|%CFrHm|R9Zis6v*cXq{HSGc(w$08eJ0_ zTFj)##HQHRP6DHnFwbJ5{G);dkZv9Dpmcjir#*^A1dza~Oq7MQ${(FoBIDoqtYcBl zd=MO9!>xrCkrUTt*-cBglL71cCO&g++N(Hu!ipLy!Uger)4R~E+MC3$uggYf+Tajs zpb{XtzINtG7<(1jSe^UD7_U3A`3t@3J2!BFF3DIU+t0^px0E67QlLxtEKMh-b#oqh ztWmZkS_H?;vD={--Jb^HQ4WOW+H-9D(#Md$#<(y0XK0=53-p$>1Syyu+>#cj7;Ent zX$h)8cM#0ziFa)(y>r8RuctAo^(;)5mQiCd+oZnZ#;+!%HOHlWptgdQtW3uc)w$J@ zhorSJ;^j~+=PBkuZzh)Y>!r%jQr=1%CCkQoJoe#?n=*~oLq`!hvKZ@gzX?&A%wdqU zTp@E1k-@r@hkO&pS=uvS<21*-GB(C_sU2OH%9*OAtFhspQ5KldK*!{eV0#e{B9DS$ zpkM$jPt}Zdbt)OzZur%|KR9I+K7${0;JHL$ADvW%SGG1E( zyN)?Xj0?EYl95GNKU_h>J>~xlUYIm~fQ8HmS&xH}D*}heO}qAwP){Mv2lE>DX>FPn zNa_BaYhBWL&I1e6^bWa>0A{TC>z*Pa@0n+h;DK+_5Z1LLkGheD{8L8%_+8p90#qSf zf&fFaWG;5VutuX;)Av4Y{KWL=6#u>+i6=_Z6p@obCGER?_LC{wMKP@k6eGM|j0Oku zf^4O8(OAyB|79+A+Lhi)2V)xSrYAxjYYbX>ho(%>9;2lTpCn=VQjBKIpUyOYqVPum zz6SExaeZ#cJp3(xBzOb)9{kp_!ZKQA<35xn&A$9pV2NNJysytCAz&~A(1N)waKp`&C)P(Hrf;1OTVNG@Jwo^H#kVj-F;Cg$O^8!?Ou+x|qnG?*6-POmBJ z5HU%6ifL#yQH=1mGKN+hxZSd~RXM>T$^b&R{=^bq#mG4p-U;a|rBJ%D*%uyH`ogJN7D4B}!QxhQ?6UI)9N4P>_H zm;l&+_tJ&Rg*{IH*_lm#SLe#VS)T6XL?K}i*T%7Pi;a35D_ZKT=V`0cdq`|>boB;y zp+!u3G@`da23EQpk4)%f>2Ft(7V-3+iZMLV$%VeRY(pbFh3l9g{fi-=he39e__bs<|Xos+bV!Zdg& zi~ObaM8`%Q0i7a}9?@~@i5<>~hzbo=K>2~||J0ssZ#vu{jia6k9vi5&!fEbbfOB-l zU#yI61Z2@K**LZwe5J!8vBc}16|i?47p>_A7u_II|CVM0s$n~u{*mNK@pUK#CHV7s z9AO8RA7N$V7+X&Ib9#y|gOoVQz1pHiPq6R#$9fk3Rkr{Z=@Y8A6{Qc9bg&vi)W1Q? zsK^RvoA4q24A$3S6fwF({Mqy|uEt60I#^(F1hc!~u2k*~cinJO<&^E%c;_$CM423a zIemkK=q#s#JFw%I)7vY?=?RKO1h==pa5YYOt$_uhU^bPRj#fwY7BV~eX?mz^oC*Rh zqv17@i7^b9uuKewAa`i}V78^xtSFEvB61;Q#WC(l2~a3i=V7%62k zkYP1A?tA`oKt^jP9m2hAw!6#4D2m6EpMxMGIlE*GBBdgF_xUy%NjliHyhbs!D!^eU zT4vOBmobM$hPt(3mgjhSa7M1IL&TSDlmflHa0}+s?fM0_>ZU8aH&45m+0Y}uy77_@ z8MWjZ##gEcEfB;v4a!(1&SdbIBKmDEx1^+eo~gGF)7zG06*UlM0!M;hmf{x;)Nx(s zo=u&cT39BMe;|&-)a^n2G6EIj%7n3&2`uGR$S7h)D6rir{Z!Mq9OJ&K3N$K3IDkB! zj4+MDm+IO0AnGRYQKk4R5E>|v8Hv&)o)npZaLbeV#c3JsF?ZJTOIv<^9>(XFGY;G4 zWIWPKkw+gd$dDD|8lbYi;@4&LHOldI9lmbj3%YcKVHA9LejysbyNRHPa#KV(Ci|qc z;nDt?5Nn`7JV}A>v4bq5W&Fxi7u)s>nDtJjP*_;1g4vGtnKgOZwG4weNcCcJ>l6!B zd#4hF6&w)mOJqZnNQR!}HCy549h5SXDnX3(M6)Z(n?0EEwnTO{`&evj$MVYe(dixN z)=uh{4rx;TGw%?j7b*~EhUk`Td_6uqr4Fr7@lts^FCYVTMv_nxdsgZx&-g%=X7b|P zj6fV0cXR2@wtq_0!rQ#)c*ZD+qQA%4HRPBDp>!KO5a(-|g_P-iS^9&FBZ_ffoXPSc zE4tmjy&x0=p%yT$m*h>;7 z!(EMUZ0c{pnQ1raZOTD7OYyI!ET)KLKnX@oNf$do$QD^Ma}eM5b4C+a3bnGoLaQYY zGCZ(WZAtlrM7=22kC&tcB;tbNu`^jH8(3WrT*gDTdBBSPLAL*|qL&?lkJ#g}v?<0;{2RhF|3149(_~xkZvKOW3x?nJ>B; z)7Cm!Ak5xiU$g{^hcwBA4VN*UBA^U`*wZ0h-b$Qw&{ei9o-0}>5KYzEV6 z?sg^vu^Hg*Z#t~P>)w>4!s*|1P=(8>>3}*H&wc6~Jol)x@nkBz@lCr_c;lP4tJCq^ zsz%|tMUBLBlR6pCbt*jbO{-M|RxtHYd*aziMO+6{I~9k1lUeP8XMla#>7knObXSddx~aINnQEx5@vN@4 z!qZ8mE92j)Kc0_Nq)jtERDJQhr#8j&u8Oz>#uBw5o_Ev+c>bu?!}EK!4q`JHZ>h+b zX8fOufCa|y)LMAnRK4)Lp~Ak__^k@dT;nII2c93Ou6SNl=^ArECGpVvDjindQ=#cH zzN;eEg7Ixt!t;a$9WxeK5Z}Od$Xu%K|nFYi*?y}6lGtPn`FmAU@!*i=;DxRAyQ}Eni zp+Q-tj>U7O3WFlk3KhW-Os}d4j$nF49f{{$6(JH#GgQPwFs+)V4#9s@RD?w^MXH1F z9IXz-GeYf)XPDXt&!K8>JO`X*%lyVjIu=F8M(?b9RE$U02ku~3s5nRw-72ZDph;V z0)&i1Ed%iUe;PofTIoNwzhx^EO_T;yMN|j?i(|Cxx@!_%Un@IZ-ISH9NiGb5}+3a6l4Cz z0Lv>ZY(QqJY|P~gT*vmq;-w1;!K(U2h6~?1Br_k&3T$>NfMvy(om)^C(lIep zpT~S0P>k#*ONiBaVjlZ<$L!K51^|0GaQYl8KxZ#xr#7 zOyQ|rmxPJKbXa9Lv?+{Qdan%nAgX^_kt7y(d31X|W>IEOC#f1MIThQU0o8UcXy`P4 z&c%iLa8KRbSu*qF%MP#;!)AYuojx^)t$(=*;%rWs^COShJ$Eh?B`$OI zA#>bu(;z$g_x12iTAMlCi6Yx%h~Z-!)@Lq}jqk*7$ef{rYI2+Xo^b6;Jxui9sUwcq zQ|O?HV^he?clhK@neMU<-QUKL6rs(t$^_shu&vfYyNSXMth^L32k~hKEfZB1^0}{P z-jF0`7S{Z|mJGYE8&BPni5uL}-I;!rV&I9g@tMC%lB+$g70TA&@d=sN!DGd1oKzQz zF&28bbsGXO5-a>Aj#yh1Y-ynvBzX%wo@3EhS9T|3@keY&Zx>!K61{;O~o@;Aa zG(!+=%Z46sbWHhtt zw#?3o@mfM-)ty3B1&bGY<5vlKm8JVUtjEHq)NJG^^?AZbwFWEk9cC}37(Yd|>gClG z<453uD^+15l`0pX()IFdCo>U_!uUm1)sPUds!m)GHLgBYgUO3hTN05jRng36qSE!J zD#^xg?0Ur~17$eN?BUw1#XRV{%r#DAk+QMuvaRqN-)BbXbg#g~fM&N{zD^KX9694bj(yv^OrIyxOpLEs~N;~sqeU#(kfDJ~ z0NKvXN1L*km%}%*A(I>WlW!p`0Q~v=-!ngvbO=lec}{Rw6YKfqiiN!R(9)W?UKBYy zqCq{(Y%5X@Y$lfs6aPud+A8ggoL7s@KlQ>V{Hwn+zm_QLz(!&~@wul$*#a0vel_vu zU9xtAOMlwpq$2A;g1r!4?nDz?-0QK(ZizM7#U@$4PSuP**xa&O)Q}pm&?}fCDAc(I z2K?vs^Hms1z}`Gzj!C?wb?3INe%4JLWgEclE;3LwR1qcz%rg?{;5{#hR&`agkYhAD8M6*|kr$)@09>Z2gfAbMV`O{x_7RwfkQLrc~VKI&jSl z%DM>qn)>XP*PqRK2Xod1T&aKm*SevG!J_V8#GYNtz>c6ln{xmiiTEAGTMc|ykF0r^ z4uAeLM5qx{k@F)c>)+uG%Brt}M*M@Mo@V~}uq=b@ELS^LO&(Q^g|=_G-+4`I6?*7( zW%q1n+jsp!(C>Ci7gtHfSHG&iBB^3_^D*T2hfsv$vO4MXPV%dyHnK!;SavzC@5M(EI+Nvyx<^DQSgW7(pa3P(=l6H*D z;!u;qx&xB$+BP}nh)Cu2GK+a7t4DnO`4EK9$(kccElGl6W=V6idMhU9g!*a=mL7}n zir@%mdfOE&YSQg(pf)FIuW(I1fU-RLn9`Y~y(XL=O!~~wjem%i>X0ehB>XzGep?14 zBbn@(c88*BpeOIZA=QD`Hn1kl9oeBem@XAPBQlM93^zq69gBN0UDP|eRO zL7RciFzpUsaX<9kszFuir)|QQhb8B=&#TaQAxK+fU;zJcV^&9<4&ejV(?%7*zCQZD zTCDg{<8dSl4xpHEZ?S{Bv-+_W9cR~KVNetB+uO5>$SF8#Srg&V>sm#nuUQhyn#dyg z{88-D&a57^?Mx6USCEwMsU}`U=HFuqdv$l#Yxa!wSW2owML_*RGVcy=P~Ng9&q>I- zBuOR~9<#ti&^;O6tRaShU(maHSW<1za%a~Pv)b`r_hz+}DRw?mwS3k}wBgCe9ms0x zL{9&ZWOfDr{qL=;kA)baCA1k`_?0)ZzLBILN@{4LZ_G&w=Btvk)?j?R`N@GVZFZt& z2C$Hiv!VL0W~#%y_BDjWFD!c)P5W$|O0ssJlx$g9HT0BLJ&Ue^t=V={_F6)6JRLR2 zD$i7JZ>ZXqx5>luq?mB)Fx6*=rh5+He-~%}Di9KJ$oosOsR3C!!KKB~tT0Ezxd)Dw zsW^h2$$}k~sS%G|JoW)D|9!Hj(n;<%i5Dz{mYZzyA%hfqbWb3sm)W<~n+;=W$Lc8Y zwRfJP;y>8#W&P+RwJ$q@=*uytJGLU&9akq)Q=T5ZaG((F*d!A_`SIjbfi1!?{1a#v z<8~1zEJdjja1#LbF9&SL8-q+5OQI^JhJZi&KQ$nA{Ab*89W=G#p$~^lcS7RjUE7H? z)zN{tlU-s&2as|mYquAW&7Mp>F`$Xii#m*+7=^ml$`3aetpk6DP&b z+MQr`X*H2*u{$Z#>_P-MG&%nf+%#*qPUgDq*$bgD&W_^W&d%;CAsT^(W~aRF+_0r0UC<&roCZ;w`Dy(;V8VX4O7e@_Vk_`dj|sD&b|S6~$w zyE{vvyvb|8M{mM)-Q>vXSJ?Jy6@`cESej>j9c!GlHH;*2qgd-z*|k{i`p5=6Xm<8( zN$On+i-ZAXTEYEK!HUmD!+q?9Y1#0d*qu1kfQkK}n@IcCfmX&=IDEBdCEtJU!8|D# z1jycpMRyvB+ocLq{Ed&B?I)#xfhWF^T}!4!7l=qsfhTe5sMM#34;#&mWymDE1U2LVOl~*E|JvS~#8sB~ckVi0d>O>%Og zQlrqH>kr>PEIP=s{jC)hkd-b7InS5~Ur60b{RCFWNJVSG6RCeKMv zLFD3wVUEV-==6hxfrwg$^sOIfFL5IkW+GdlU*4K}zn6SF%DZt>Hch5I^AnP84CTJJ zvzuZ7*4@LoGyM({1b>(9>O{)SM3T=`20)Fv2%$y;AT6B;2%{dZD+86UBPA!)r)T?D zu1X{QGo+7}<>n*^gXJGq-rD(1#+uFZr^G zJ@V;3Wh*8Ux4uy3sR$D+&}1HP^eQq|a8e}3ujFSI$WwH-Q8*>cuA+AArgqP+&0{=m z2b_?D9Oe&3RupDy#IAMN=ts=9G+~Sy!M1tZUUW4r+A~H)TmpC?c-y9tb>Cl9VnISn zHHl-G{`u%0`w z+1B=pn3fGlbW%(LwpwU%!HyS>a5UM6w3uC{GT*=JdGg8ev2W;Q(_&n#{$if__kCH& zNBZJQuuvJ^ZaxAU_w8qc+6bY05b5W;dffBL8;t8cZnzVwf$9H8VTi&pExwT(3tg6<#RFRUf|e?ySux zKPWrXI(zb4V{KC;O7M;Iba2=5!rh%nJG+sb%*$W;N^H&nkGlNUWSdQr#_@wuwxbFH z55#tUMQ~S7SJT?{3stCNx3dTvwjsja)wE{oNEKN<_L4-dH3vE=IE}~JqHVQtpvi4e zouy5;nQ2=LnLNvxom*!M;4$-TzLdw~&~n?0ifO|J7j+`@e1(2rzu{$d0$cTpZIx_# z4KQ$jJh0eSogZIed%lJaIVSe9^tku@Sx`^jfO%HuHEiiN1kd;V`!@1Dd-%+Kf>;WB zKi=lYPP}DbE&%f3uyF}CG_+7T;6cYf$6ukRC zROe{kqL-#qhHN_p71Qe*mZ{TNO#T8Rjoe6AQ{2WnD)gbR3zXXg0#BkmA!d5B?GOo{6kx^PvziFk|R%X;i;9w3|c+rG4I5;?PR`*zHXO2w1e%x`Ud;zxDW@!YR%ZzKH# zkGXE!=!{(0ZN~oTv$JSUO&YE@71JAA8mQ6y>+fw%W$O2q{l+I77LX$NHPe^{uzbH` z+a&8%=pZ)cXWPt+nqm%|*IAGWZm#7!ZLW&SLPWQmJUawadi5<4_ zP*Hp=uld;aGY&mRviNSjqC)wYh-g@#BVj1Mek)`$$7~7nKagZ~3BTmZmjR8X#La>L zn9NQ2MNd9S=C@bd+@*L=zFMzB(Xy3d-3X2l-%sdd^<}=j4sQ;mm(wCbM^b*R0e{0u zuf9Sr%2JG$|)9>08t56PU%JjUbY9Yyq^|DcsVE z8zn`B$L8p7(ySlJx-wGUp+1rxM z>&17;rrc-lVIS7}1>>6+7mAaoW1p(L!<24e(cjm5T|W9~2$v<85Dw!Lbk4eJtL=R( z#T~Yc3%wL(8P0o43QOGp-`H`ZIRbQ6?ACOCF^mtAb*|J05#3tcKmlW`#EVDr$&yr^ z2aV=0Iw5j4LTwqD=OOOGE{x+HT}`LsxjeXtFWdB`DvDIVQjVfxwpk!(7{ zq^2(~Ws!Gu3hP#PN*FJm!;wJ~*Mc{^{pm!|1r0Rn)|bDrm`@h-y7=Sie8+h{UzpL3 z~FY zj~`%8Wslorb|EO{e}`SOGHk_k9=A!tcR_m#ajECfJ>jkflCOCZvkAD{ zWad5#EpfL)C@`jc$@`Jo1?TBO%UYLHsV?oJU+-(6c@w52k1oeFPceOguh)3QPy92S zJju5LERBumI$Q94i;cYK9KRu$={&f&J|FP|Ps4QomM>^~7IO{dJq0&zq|nY+WYZ0z zU`xS7wgF}@$0*ZH6**Hz5>4yLkT@gJP5G7d0sj#S9)wH4F}8b7PsQ|8LPxDWi~57( z-1U9p6s;b~$4XpH-|aDI&=?_cEEY`aLk%(tH+_R27QAUeWA6Kqe*?PSA|&ShGZN^H z$l?&tiGSgQ_@mIxJ+n5n$Fs>&Ueum0n{Gc@`_6x>eS!MFSvHkaIYsVPF-2PC zJg1OutI|Y(RbpnFoFP~qViSIC;NY8>hNI80FGu8PEKLi_LyViZ8Z%@?_OaXEwa@8D zN-*SnEIT=YmK%6@NKOO60>1)U+{yKkRY6U4RNBPHW;9F=5LJ78Ba?h;vg>I(c^O7 zaDpBR;iZkN*MyuA)y>tmMQO;~z2ANY;io3#ba(PFJ%Tlk!?Y=|26uZCslivlVkoeQ z6{?!RhSmT)>sukz4XkJN$Fr{07tcCY*aroATOoxGtZntdvz8UMLV;dZ2)qM5to8A9 zx7Nke%~}V~8dmRW)yx+(nD3a+Ym4war@e&d+ZxQM%%?Qi?U+w$bMY+F=D-5Td_tRz z=Wz{}U2~!KBAx}>3wY*hGx5yRV9I08)o{Hxb8Q-)HVsBR=4=f{Jmz#Q63;XZ)-~o- z4c0a06m0^YRt7fRSt}^|mHO3$JHIUSFPa_?|O%3K( zrmGr=Y5G(n-AAzoHLB@-4OUjBa~iCyOvg2MJPWnzcot}`c;;&)RNxxMIMCIK@_{Z^ zln->aqI{rYMfpIz)eTRb6$@pclNEIXSIJgX4wS5@99YeYWybuMRl)O)6`PCs2P-(n z{FO$-^ojNgo*!y2<9SJ2hQ@4~jAync;hCkOq$yKHNmGWp63=vX1)gat47*IJD(ae2 z)a7_uRX{LlDnU?JsbCY6MO}htvbq@0qbgV?u(}mCW~R4PFplX>6^!%$*8a{cp^x;B zo$uc{hs9`}H}UAAzA#;c;eb(+kWBV~|2O2`x^{$nmgoHKYIaUos`-(NFzu4;%~x`s zSIoG!nq62#&hak1c<3qkY{LKAnWqJG_M$#}9r5YN(C0KhzI*4_ok*$Vc{?;&tV>PV z!#@{xhg*PE&|K=sg=Utx+L<9^0oouT?g`WyBi8(U11 z&0Z}0O6YFpF)8l^ZOAyoLHW_C41@*{6hxG&z!U9Ep1%|G&B+n|QQuKVCgIF{Hs`7o z?~Tmfik8z@M&fu8(a`gdTOAe|lG{@;*Gq8ITH3W6MbmRbFfGj9iSx7;@xPrDnr}T( z{E}jZ*`v7*KN*#GUYrizsDupl=hBE5ODKFbP-*4FfeQ9)bN%urlT&mv@;+;D#QZ$@7$Dvkx5w4sb}&?GE!g%0xHIR-6+jG}?tCU?21R zE@vP)5yFXGj6qClz4;iRhVhHCOyp{vQq|DxqOQz$eubK{4=P9~tORc4{2(#!?m4I{ zXxAdKrDkA}-{oW}=4N2gfN~a9%vkKqBE#XhXSOsAEeS77^fbZV95KQB&`UIBlO{HI zW}bn~hp_Fx7e_rI98;X%J z@brQB|Oh$z36vjeNn$90V=H`wvNLG6>p<4mP*k{(91&7qQ^qa;ITc zH3ug-X=Zu>iy%Z91zB9p=DkBS6UD#~_jIsNilmsa*O~*%yMU`Crs6mvz=Pj@qrSTW zr6AHwcdLjyM=nH|H(}fJ#E^+`kE=il2Q=TSDIb#m z4{mAUBXTn&85~E+1zF7&ExJ_-(eRiS3Mt(`ieQD8Gn_p_!{DJgk}a-tj^o%XPU|7L zfs_~E36gX<@x`5l~8N)og zib(v!I#R)Nyktb4x5UzBHi(eTLzvf(`j*_VA@>SxBwo5%t;Fo(n0-0UvUxZT(yx#i z4(8M|mMP%WKKpmN)VXsdF}IGh9(wyUhY-%bK8;Ukp&_#bXr8`2VqV9) z(HMbFPmF-8Ibv;Vts_aW%49IK3xu3@bOey~F8^lttRrH5 zRTbAUxo`Fw0uc$5nz4-jhlU)rA51?QCexkxh8!!F&kv+<0*y|wN<@VDGztdw*W zn)wXcKDEr**K&{xa||&(7ZN6zv2W*gmH4ZVa|4~pcN|J7=w`|od>KEWiP)d7L`eI&!mlnd19jSD#&0aHHL#~STPtvdxzoF#$ zkZ9aIhZPOU>q#h0|EEc=!Ga5A5F09@Ya&}V*fWXT72DWVo+WKvo0U0<&!P!c0D*s< zJeWb7k-Yl9z|YB!Aoxe9^4G!@atr<4n&@1xIZ+AnXGY>!4i zFmIShu5r|%h^dv^kzbpTw~vh4%&#QY)B3Wg*X?Hd;`G~>og0$ZQ8Cj6|5YAQSg)@* zhUUn&@Vvn4Qh(m&`8?=2%q!w2Q&kx9y=p1R?KbWr=!&Y*DTxvDu$9`7`orE!b!Uu z!kimKusEhaB1zp8hXmW;p*XrC0&p)D?c@oO<;UHf*)eCI5ZS!0e5WlxlpRW3UUn{E zUIW`A5=@NyS=#HKed<`97vcm(N{aP)xP`oi_nUd>mqibe*XLfU3|qI>wqZ1svA9;nsAnHpfFT)+N>^ zb@|N6wx&13ow$y-k$??$f-^hR7zU<&p4XXeZ&JtE)x0-Rr@?q4!=c)&m8-BC$Md3G z%?W!}YGEWN6sim?%JvV`ZMd{w35_B4-Gv|6vBbD9uaZ)+G^_6ZHi{~}O#N+(!^XaH zM~1e9a#x0o3*%Yq5Ar@Is^4EI7KHvBlHL_K=pHuYkW+SjY*L8)xZ=#`wvY2#I7y?( zjsp^dD|wF<^Wi-WwUOm7T+IiehZ*6}!?fb)?ifs%B#LPAjmYHWBRG7^{!VsBW5Ul7 zlTEZzY*M-LX5Ob*iQcGODKbJtB_GSb?i`^@#CS1DDg}%i#KP(?oz6Tzt{qJs zGwI_Q#`!OrER*3fR9wg1_7F3Y%oldkrqC*TSbi|}oaB9Tw9%vrF|g?qn;Xf|G%2Z( zGp&RlhmZfryS{Hx?| zE`l4hVjlFe|y>GKz(;f&iZ1Fn^~6PwX(C{0Wk7BJFae@f45{ z)B()MueC^Of;GRb(w1*&nvc9TFn9oT(#V8IM~`AfeG5}zPT{!&DWb;auxmfAXvWgM z`cr3Xp1)Zl!v^FRKo1FG1QiZoF|YqIlmcrIHJL}N{78yMS^CF)*__ED7J9!=<9m|r zIDlDMntTCgk#qTXU^@ActvWNDI11D4E1@}Ta)%)`*yfM)Kk-ZE{51+$LmVfm57eOD z^FJpzLpk)5_SA3}WpjqjH-Dx?=@QEOae|69CwOU<`VrqfKTMj&!@K9tkzCC=YkO+2 zjDUMfm#GhlvZXa(@;BpfLtfY`|G1ue=KB{_YSt=Kr1)?_mKQ)5~WAjgo8oBG+Gt+(cm>_(cjL;Nw2Lkghnu& za>kUL`f~@nwnc}SZLc-2Z41wbX$`C%HX#xFn9^2sRa9QZP7Fm#vY^+!8{jrpFo?y} zKV6GI9GUMc>s}P9RXL=rK1btk%Vcta{1U@?+50k%@`}H6-51HWUwV~QPe&WUaQ#JJ(j2m{52tr{06)lACY?`4hU>MlHiTJSd zsAfKEdo}-OovgjY@5baWbJA-tX%L|sL<`Vl#=QRylIYcbP=gJfTJQ!j4Wik!a`Rz5 z*5{v<&F|sZnZUrM-|^KO^J8dBLhiX(yJHIEBQ@BEsW%YJVot5~%y+526D!Wg3YpaO zJGY%NUQJl|M-7_s>f7_L==B<`AVf4Xm`gM&=;dm@2+msq&g0;`x3F{_$?qNiCKijx ztp(w_1iiM{zD-bJ#r!V%@AyHyOAu&*=Je2 zP*&ySKPPLi@Ti>pG|b~q_dch=P=pJ9Cho!5f}}l&FFwN073{(J*c(C{c~yxI13nip zx^Okjd}44$?rv{qU(EBXfRL7CL2`2kCO$*UrijVy-H^)1M{38ov)Zb zN7=8LSDMn4x-{~c_#b2PG7f!pjQjAXyYMx-Ae$*WUIKLi3St<{ZiT5TUqXv%@YC~aKV+$H!DE{iAuBHO?Wm?;>l^;^FjVSknt9exTCOKG$=IQXdlIRy$gfZmSv?RzuJZSYUIS0W zGF?oni}mCX``MGD_y;W?Yi!;HnXu_$Qrlw0Wj?YFh0f*Yv7oSmzKZ$R1aGSo`#Y#> z>G0l5Xbe?Dh4KD5!NZCKTiZI7miQ4Um6T3l0cR1F-t>?>QUM_Hw*w-ryqWIGcwMF_^c(5kU+MEw9=5aq?&R)-3M^sEKbv{4 zQ-9*_AvSy30d21qq)CzoPhU}xBYcK8QF1d;;WP5papsR+Zm~r=vKEx}f{|juR!Q>Y z$k^rQB-P^S8w=i$C2y8;w=js#Nr`Mn+nGA%I{)BuhNZcVGSmuBVBv-=&QW_=$?)wi zEOL^U8w+vr2%;NGAiJ}vU={I5TRQzX^W^OX88X?StRw$9feQAO2i?Fz6^}0={PUd! zUrG{=q_M}us#R5~AsmOC6_Qk+9Zx8D(KWE{8Yn%ozY__(=s=n z2kk{EGLzUqvP*H`JV3a0qUpJjH9JypjAF0vvVX;(OkjI^xz8o{XYAmRI#&zyj6YTo zA~oWn#|rA|b+BZ>7>v5$&x+nGILv)hsB!Tvymq!P%5v83Y#wOIGJe;gVg-~x@F)i1uVpp_0P(KTiGPat43Sj|VpwqQZa>-#g` z&APsP{KrVqOd#@%J;#byEv`dkuN5D?MaM!0jCAI6zbSz77>ux%Zu9eDP?gh%{*2}!$M=oI zZFPX&nb-WVpo^k|N@@q`U(E1ch=#?&d)K;I3X$Z>`b!ru)myRYLz)BS_223@s$ zN+uz?>mxp}k{yVR6uxmflJ2&0>&S**EAZqKzbt4fkZ2_bHnM$LFv%4QRf+d7=mx8M zG-5$_3VMq4c~9Qce!5rS4;yNQHTtpOC|xDJ%UQ~PY$q;xeJy07w+f0R(z|UaTP`s+ z{|uD_>IWj7HKh2s$_i9CD(!cYg80R|1MRE$ZPI->td@*A{=QHV z<6;>(EAj%9-^{^L?d6-o9lI$DU%sjX_jE0^IKxL1nG~@jyj0jr32c|J(%OMV93vUR zONBjf4lit>1O_E8v$khpStH8d9&`;f?`drn&a|aSR%c0D3gIVRyYQkC2vuWXAUm|E zaA{>^_A@yvXH8{fLK+mFQlvnZ-Y3yOyfc>WtMKWt6t;bRUehOFL|>@q&*Y*UGX1@Kk#)<#&qJqE#au@JVOByDLU2XX_qHtZ%x98sn6*h1NYNZOuVH_kyM7UCNcA%gqiI7=c$q}flz$=j2 zg5CG<9}1IjTq|sQnHOCxtm_ES*0-=H<=#F{(l^{bh|)<7|AMnt#V!~1E9@!j13Q9{ z92!Wd-OHQBeLlWcecaC9K?n%6-U6-P%6Xo8`N}`FF3#zr3eE6}g-M`&)LjF69vEhY zMyk-hnLZmG*i{5}jlZ8$pF_&f(}`NsLUmC#>v9_C}5%TRedika?RaYbc53{b5RSg(&(&|K=(_(9udn)W@*og z6>6s>0D)zq3w@EK+mWi{$U4D-ooMasmoUQGmC{U=vUVt5_Wy4U`b9opT;3LS6R9+O zazCd5*dW%JAR_uaLe6VjOEISsN-H3BW%vJ&weJ9n^4P-m``BGr1qAGh3Q|OoZP;Q3 zTkK*>>|!j@#DcLK3)s6Dlv&g$nix%V8&Srnz|yONi7}d3Fy$sOCc)ek&9(gRnWfs2 z|9}4bJee!sPC0Yt%$b=}dDOO)9Zs^Qe{yU}Q;7oZZY6{0XDzjw4}B*ECv{KOvweCH zEAvXBmxyNQh8ZTPMYdDCyk|CJX!a*7`=I_Mf-eN4H((y`zN}!^SxSJc8AdbZu^*<) z6+XKwKp&kyNusL01gLP$1cOea>^SdbE!48Hs)FvuKw1RSA(ZcfMnYOgAIDeU z|C6eL7uzZGEfzWBus7B6`KMYf5qkU+c%+py@Mb+8_Elq= zX!z{b)0oH0UkcaKmSW0quUp0jpZ)$Mi)icFhq%{dXQ@BO6?T$@(895bUt2P3?bLKU zHp!JiEo-JE|DNI^lk2AlU{SST%P69G5CeJa}as8)xeP9)7wk!)58OgsQi==UhI|%i8JK-!YAZeb9kFAs+W2UngY+$^U60y*q`S# z>_qOyL6u#KO1;<({Z41aIxkZM|D{3dbSHB0Tgwi)b{GA&XWHN9E7|O3aAAHN+X+5x zJEM9kV!}-$>4t{O*0vN)%_^OoW0sg8wuc|efTh*?;ON6eNj`xG98x#TTSIRM_!MlL z2w6IiIf;ntW!hw=h2w-OhM)9LT`i>R`yBGq8m-=e6O8(ek7dpLWL;`E1%+(2IRu>% zBU8KAjv(vJMLPzXUghTYsS!>p4NN69i`hlrv*~nHx8Y@dQd^3Vn}MFblr>A@hELic zt{V*34L4TYKeZhz`@*daj~JVZ;JctjFEaQ}VqvQX#j?Lk&chX8um798xOqw_Hq9CHXO zH!`(nZOsa!j|rLqYaizM-;`iByM1bBVtp_U)vT<%E{v+&XkuDkPE5P(ySB1s6=`-R zSIvnAoFKEXl@?d-Ha_)&iZljre4^(W#{Py!#-EiWetT-_Wl5UI)2F9~V`A{kX{lPz zH_uF6=0xjLu2+Pco7Dyv&Zy7UAmvtcQSiLvV^MB0cR#ZxQ{opFq&Ah|K^f!fh=`-$ z4Hu{W0QMFG$T!sN5!yp|8z4FA3p-p(9Zr6-L!}0~Kp2Xx&XoisA5XF)@br@9h*Z(i zf8jae9;{45%QsbM=qhr-?@sMb+JTb})X&|Wigc=)?fYk&B8BRPoA;zf$STcdbiae! zT;>lKw+It-hi3vQ8un`(-Ioe0(7B1JyK%$q25Xnfdl4)B&%g_`-NLKwD;S%W+Dqx|8^nEhyKFK7~>_MG_Fz}I-CvZ zrZUg#i`z1MXum5$$r9U#)lqBqB+M~EgYmKBHCy>xVl$(=CKd+IAI&iS)%;+F$+qTuvxM?LW?)Wp(*$reS4=R|)?6?FXPPV%@T56oB8Fl$0XLct zO~8sK(FA;G4w`17JYaeq<-4XCDEFDBql`06L%Gc~1xD?fO{U5CW1R{1Fq&x7M3k#d z6HvZw8jo_JiS7VznO;E|Wg3lgu4xp?IVQTg%r*@}`G#pI%9*CYC|@@X0-pAmF{C!m zjA68~=BX%mm|^{*-EPK^+HK}Yl4kPBX(a5ao2!0F={A{ZWoJ^+P$r)C=Vh6KZM(o2cd>Q#X`- zOrQo$cN3^V^OC6(%66+wAPP-@$$-+|q(kXv(qe%9WH@AGgSD)wsJzG0m!x9VgkzU^G3a` zfsegA`z6~MPn5#f>#=CxUQ2k%r>Vcn(hP3@JhcaU*&lx;^<&a2ZWlJD{Kl2k(F)QQ zZgu=U>3V8iC+ST#w=@;vw!@n`n4s~CB@39=#C*Eb?mD!-y$Sk3Xg8tLr5=#21{15t zi@!+?Rmht6$gn+|Bk@=daeU4aN_Js_F@}&CIXsR|#HnOhpa%ckc4i1217*;S^m>>yc0aVamZx&FMhvp4c_GYy86OFZKezJdDx>q*VXO@zj5{rLkeEbDx+hdz5x2l!C&3!J^vw zcjjRMY4DDeVMFt;MyGe>Fp2dX(J7EwA31krWmg`;Y6s7Hn(wEw=9HKvhwGUZD^zl( zb2VEH%7v@uzjjQkr<65FiHP-dRFpN4@khILtX8*j`FM1nG_H_M3o0j4HQ7{S7t>p; z=NoMV62erPvzYPxXH?|C%sG+akLhyiy+e7;*J0LoKtO;Uo)h0`UlZ5D>h>f>!L#_W z(P`tbanh;*%jA3imhPhAXI)E^!D31pB-5CmiZNO^0{56-Pa8!W;@knl^TwaT6K!df zV%3$G1%^%s#Zk)mQ9-c2j7nQ7BiTcARNC(G+VtrYwKYLV4m(BSU6k7ba_RnSP23eA<_$eE}I={;u%Gfjc=R+&i#|z?}0!FcA+Db#$y` zhi+B*j{dABMGeKYgFAGj9zXhJF4f-j!X94(VF{<>HkJGFOIFzTgF0+=7ca4?E{g05 z)YEeG>KWC2#q&B`&7-cS4XlpIczaruY+B)D`~YH5By5_5SpVE!S{`Em}wQg?hpzQF?MgJ^&ny{ zO=x3U$$lO6rlW~Ua}6JF)m(;kK!t<|W!+2bz1)*+NN#Oc&x z3qomie;d9;-AzGk;#N@d%_b%n=GF=qZy;@mtofGRx~@D$9CJ;jH3Up0Uh#*t1oOc3Ft?>@2KZ9GS^+606h=DyI*BIkeDIsG&C~P$wcf-~ok`|7zMM{?i|6pHXCp zwEJnlJ5gi^p?DKB@5@?@^Qs>|MCryNdi)Vf>MCHVS-i7-LR?u#Z#H+lS0ko-5y|)(op{pD#vBcD7q( zNx^Mud$JRSoha9nMh-~xM4B7BheA?uo2Na+2};#@4eTQn3Ktq3c8EAB0_=B0kl}{* zru<=3dy*`v5naQ6)rs_{n<)}SjY=z6^d^t#M1hEk;b;Gk(4}s6=ru~3+y7vti?_S7 zbQ9mhu)zLHjOc#59oQ?Nc%=U*ZSlI1vkMPL)`o1_eerN(Su$Mc%Lwk*s>!7#` z!f%oz%6V;ZuCyZ?#b^=S+zTfE4eEEGthvF=XEG=!HZ9hV8ogAmY`1?ZQIO~jq^Se$ zbE98okqhhyFJf_Sz#{A$&N&ezs(!|Y+Q=3ab+{Tx)rXDW>oMKACGPQ~?70f~ z_iu2lvQO5w2x=9{qVqTY=)C4_Gjz)3YS)PHH6tCrMYM6>#ylo%X&FDpo+d%;KgJ#_ zNsajMarShX6v68picV?)(*aLriM01&S0>t*ksi2QSz9)0+d%3rj75#L^GZVUb->nh zoZUS>(jFptb4{fE7ZE`kf*U!^fwYQVcfu&|``4;rfuKsBW^XT%zIYvJE&|~R5Iup# z-hhlEb-I0{LtmV(8xY9x17dQ{v`>e_x;6^x)Ub{ArmSpw(}~Hm>`p>!jL6@Ig2b53 z`M@{q-^&W9X}6O7Kp-pqEVm1Vmd6G1N_1clAH#aTkV-I0`u1X7vsQeHg^UqTVUU-2&i1kFjZTa7)IGM ziLOqwo{Q}+q$DmUJ$sb>GeL0iOYIj)0StTC-q*c}yyDd<8|luwmRX$^bzo8Z-WQtP zI&9o>dlN+1@W*|_9bLDVvTsvki{BT`;nwh&rCjxEyf>FKSI}u(IvxhiIT<$~GGhk5T$P8i@_eh=h8sg)W zw7ZK}U}2Y)EUdKu*CfyDU)_z;YWGvX2kjKaS`Xm%KkRKOD2TSf{@G@h-oH;9`h;g_ z*{*usvbG8L-PRi^eetO| z&~rs`?5CZfpnQC8C_EGXu$$G|miwH{P*5h5oLhj=17gwyk2binXubEg zH+O<@-bDmP>5v}I;Awo7zC)&^ZO+3_+S4ITbfK=HtgfX+D%cJ=i?~PMe#Mxm12ABa zW>26@7SItq^PD@?u-*qUAJeiP3*1}@XBfiUmG<9IJ|jPRnLlQU89fn4eRpR+9`&Uw z9It>==;-KZ(N;PdXESJ8`t#Uqqi6A-~X@$-ID zWX$DOe!D9#nubgIHH8AsS3;6eHLNo$aZk@eFyCqu2uk)ykCdb^KE*Q~i5SA^A^?v5 zM5C7+vuO+*^{#5I(rP#KGWX)Cjnn%$$y!|%%(yC#`HuqiOV2wZ=hXtFl6X7e;i zCbkTNwanngo~-3df5)&#U!8+xe5>~k6SaiAs6$dpO0$?0gK()Khe%`aDiE8oCoa1$oZP=Rc` zj1ql^_JA43%glNp{U?kFyMz1B1xzo+yJiRSuG7*dL15ud%pIKf=8SYd{8^{AcECT6 z#Y@(t8(<0Gld^`e6a6Ca+emE5Cy;gOQ~|!v928oCTH3+?c2LZYB0$ryc;O*C%5$(b zQ%c^Q{*6KbeW#7WjRr8+g!C~g?IfeCdAK7&#;%0)UMlT)<9KrfnNESI_Y#$l!G~eh zKa4guFb`#=KHvMZ*sac?;(gSjfl8$vfo(IS`nDN{nuDLN>8>4wDMmbdiY@q(chk3m z7P_Ux(H#b2qb>^e$qW`sb6o70EjAkcFTJ(EBmXxl8s+@qs}u)t75tPr=&fNawT7EPTz(b$14*`I9H!oAND=$eDh5x=A;L=A^K#!%n8950$lJ zsrf;Pzn7klczIgkgiR3k{Fm(~aNogg@Tk(=@B1=j1?5?$63~+bM{Me8#6KjPVo@K> z{fZpaO5DCZKu7UTSu5-?wvobn6#w>0dJ7y3k^JJA3`EB3c0D}@_Sn%Wc$8cTKg+IL zGum=%<6v0VO{|-71ornS`^nrL7Alb~GL8y9(iy_@a27ov<08BEv0pp747+m8FX`)L z33)m?gaxr{WkiGXjUCOeQf#$~4|5YbnqOg2i!-uR+Bd<^;lM`x+);a`QD+_%fBtG9 z7C$|l?kv+$ePns{DfoK^xrI)WIAC;m&F8VG-Wha}xb?yPCM?=H;5vbtCO{p4v+6BR z1?$|#c$x5qDBw57;vttCMBsbzgX)Z_vQsVXtmk&>8L9bKokBBSqf@|xh}8oGKA(h@ z9=xzqQ@89(Q2!9P?^(Egi8pVM@f|kP$&`lNV{9`B+Mbv)(k`Slt(>r9Z4QHa-+Jz3 zkm6QM<`lmel%aQKa#6~_8W%dkWDV%x>Aa7g{0G^*{uw1i>C>=FJNdoG@pn`CsHRJX z0)dgWJu>1|+P94c^EhT}U%B>6v36t2*N&9E%LpTTo58jBd`sYJ9u0^{Yd8$_^)TbnmLQ-DTvULe; zEvUya=NeEr^G(;&P4sG+GEuX(vYW42)a)s#=nK8ymn!txm z%dj{pwW}~&GGG|+95BllACA#g=oKRd%WQ5ZzatLxa?M*ApE}_c1CJbBm^K5QlgiP# z0so#T{;kxmp}}C=@S?%kBfr$~gpqLW(O}PS!UArTRDB+5UiMmVFI;iAJhe(d0!$mq z_rWuohbg2;p1v!?OF@PX10Mj;U@X9cn#3;>c%=HXMCp8#&4c! zhGQkK$&RcBM+P{;Q^cD9QL-mS&O)Dd^~V$M{)~~e??+)H)+%tp3d7RAvZ^{Wa^1PvYOR)IRe%#k*z|bsq*VPSXx|IgI|74;_FnK7LeS8Zwi`X;y7)$Muc^grm zGe>cSE>kT**Xpj%%u{Pm?XPd1NB9w*(zv)Os-S1q?#=$I(%Jw;GASVXa9ph3a7?EX zaK!Cuz?yZ+{9e{_cI(ah;tt`!5`V38W+Djo6MpEP&Pl3Rw4KP-I{r@T;EK_SWKy3b8M2*z0t7|!n9Pq{lx9Q>f0txeRlR4kZEt2G5E2RZ~!V}-0i_;Xb|_3nxLxQP`W-I>RQLZBbH~Lzztw!<}qM=8FeTe)M&G? zh<7l{NvAT;#w8*S^N^L932fhI%2rIfFmpU>R+tIDfj^c0?8d6hIdNf=^zolJuEXAN z|E+fXy39MWc{%@OU1pk-Y+lI`{knmqG_N4`2pPQt4w}j=c42F#9@3M*%ErzytISa5 zts`yA6BRcr&8vl=RKKU{7Z_`7%k)I=(6B)R2yrX39?cxUevQs_XZR^moa!ukF8&OQ z%M4=|-pU-n5AV!e28|L4exO>d)*Cgs%j&PrY{?JDWsbmcPTeA~+Y@zuDes46GNGH= zTDhcRjg-u~<Er49hI%Q_IW4ALi8#=F9 zXo0Kada@UC{KoNHADMETLLlDUK_v6Z+Sx-iP^=BNxbvPlnWJTj3JzB^awx~3<9Va} zOhmBq;PVSIcR5MWQ*GKC#Ll~9^`ys1>82)@`jph7>eEf5pQRqVbs-ZMwrepuix+vJ zf#F<-6#JLt+nEjz_94Xf5vAnFap5U3DSmRqFt} z+HZCYu|Qe%uH$$H1UJBC-#-rJ!{6VAlF2lb!w{gd*vFaERN7mB?%VPqAAxo$dgoI^ zwxA~>O^vX0N?(RVY~;OP;Y7V>nX6QUkRy-PAHj&8V+bhU0chy3QS z8;iQt=VkXZp|)+z4?W172uA+h$*eRO&d*%N_(l^_)DxdKSic^F@{v}R`fTdi~3=VXE2Q7C%+neKd+7x%cqUy*RT(A7>DVu8~0 zW8w*p-;ij?@32beY;?BxQ=qukq6K}`Kue{A=`ql9%+Elf>qiJp)7ylo54_ij0Q5-2 z0AJrf+Xb`e{f)bG>-ww_Dp^;DUo7n~6n2RsuR_VrEQ73bWfw1X*io}?rkLxFCuSHU zGMTX0_^iP!%(Sfm$Ak%&?hag1LW>P9)~8Og&adzw-+1(|MDee#ow_C*MRDu9R z6l2WqvubG{Xle+*+9TVa*#q6Y_>ix%hDq?mjXgIM4mOHx$}g#FxqY?;N@X~_xpuEH zfJ)aKKl|Xod00Lopl(6kkEV?X4PmHQ(rTk%^R{GN|7_sS#&>sx9(;Y)D?$vzBX-fI zLHkKh5YirA_9%-&mA;)-PuBVI^n1F{3Zg`^k3q?0SqBwTd!G1v)(J_a3yf=J33dG8 zu4@GY{BrLE{S59pDhu8Tut(Rgw7!aRxfLex`X$zpC>L8{p{`$Kh1t7)p%rHD`UO^4 zqU+zX!V+CS*V-TD8`i!kXIWvtuAgazJ-YsNYdFdo)-aR`Ya^7ktZ*C9J+^wGd}PHt zLHC!nF3Rt%t|%{Aomb=ka;*}|9Lq|S*_IV3vn+3;Ot-)RK=-j_3Ca_e`6!QD=Ar!1 zG8g4h%Nr;^u*^bv#4;1*dlonV=nh(@p=1`wNp~vA_&px7jil=TCC?{Knpd4etjCG?dn5%B21y=XE5f;o?H{8+(_(E0ws^G#n^AkgBBMNS0UcZ}L&_nkoh=xXkyg z`MAdU>~hQOw!5>DVD;^+2-@;+6Ru2=Q^_kt-FI0=%j_rxOdbwW>_!3I`v@68ak~E| z_PBylbN<&M$t}+*G=j8Hjrc3Av*EP$5^vEayHrLCq5B3%KfkaUL$gV2_sye?`H$M{ z;UfJoTq2IeilO)8dYom4jY5jy+Kak@7arN=SwF1rNsmH5miD)@4NvWqJxL;a1|;z# z<`4dQh9L7C>LT3ow>^ml4#xbuFlX3L7CDH5r^x=6mxgDzkY!z`_&(WPC}Qksh8$x4 ztn5hkZI1KJA8XNNZEZ_;hBz#(>9Y%KeW*$ExU$&>{(HY{cd%x1qwfiOi=E-Gk(O;e z-V~>Uhq0xDvbO-9ioo8f;!=7*;!B2QZ&eVWq+v5xidNYx)jb=MP|2`)w({$*DdguwpD^T7+XUZp3vRWlihW>9>{(@l6^#_!v@y% z;x^X@Ll9<|!r=h0158$=U!_02ss?C@0lwez8V1%EyuxV6I#Bym%;Jiy>qj9MFN-Vu z1SrEGZDdi~uQ#QdxVceVS=XP3Ptm_84xF~sSWgF*?_uMsRpWRI>1t*BCT#V_?3+?= zK6z92E=+4s!g5P5x`n}(L}34xQui|E!0x7}WD!-zIDn!KA@r2nVIuf?m|hmuz!KdC zv)GN$;Yx0fUz&#jEJDV%yw-r5Ws^@8~bo#){S2Kl| z7KL0Ew9w6AaIc$4o%Q6sOS03bpW$Oy3rYUJ?!qnpTJ}4RM7pi{nQL&nRq3Ygl`MmK z`t|I(_#<*}Q_G+iPhCmJ_mnu>94NX+Yh(G|lI&pw%>4hQMEu+NAfV+p+PboCT4iqC z^{_%~ZJtK7Vnt_DVvxh55;^pB5t)jJSMkR$#u8dX`3fmjis5sj({B({%x}p+wo09| z5x-SLxIQPGPUStDG=0QM<$@DRb(ob#LG?JGA^UTmEar#sn)t zG?P8<9y62j5x%d|(T(R#Hsv*sS**C{&szE&CSbEaJjOBZI%22Lz$Vh?%}BEH>;J&z z+`{J5KOY0Wa^tr5$YZWOi>Q~ABL3({Pfn?V3bj(}<(l%QGZaQ3g9DYwrac?X(E zgdVD#Rdry(py*AXOq1wWv#aLhE|m`F^BZIFZtoabSlMZ9Ik_`}Zz6t6x^UvS@Wiq% z0d^^}H6bBL91ffDx~+zQ9?9SKijkC-k+hJIeLEJiDvESJS+^wqhjiEpMr~b9ppB*H zi9Z`NIp-t#lM7IYf@mmG=h9HKpE*?gn4B-9(T>>IK;CM#ZuR~-7K9jh-pFsq-%IzV zQHD9xv-D3ylXw~u44wYlqBE6fStRtPZSbnPH~2P^kPLmVUh>SGK1vD-u!|xsh-vmx z>(+1aw!BIKJCJ_6oQAQ^J18_=h+4M}zrOOEUkR~g|CuHToh(513VV|g4BP5m78yHb zE|FI+u2`7!h{#j8v;+KCX@L@@_}{N9*s7l1JxJY|N6*Pke7^UFoleZ-%cgUZqjQ#v z_`jc!f2Dv+#gDDec?Ac;hWJf6#nJ?}Yt*RL?5|BZy;Qm##<3P8X=yyG;=|T;BP`?C zl%*|1@GS-Zd~;3+nr{0zeDi(0Sfkyxu$Hd{C|O$0ul?xH11xH1&O3l|O2FMPGMh=J z7hQAkovSlb`XZEn9dJm^_V4XjSl&nI1qid*g=7UT*`_awr_;WeI(iCK^YUw~P3rGQD z1lb@&Lqnh(cOMUmFyf-p?K3vEL^4|pLLT_1l7873edi3!8Mjv@!EI?tYr->VBnQKc(d~l646TrbZv|kL)?HUI4L|hu{ulvr{q# zS6E^-CZD24bT%xm^8C;dH{HfR%F7w!EbEYb@1uwwaXzb7vgjMiJv`#t9XD}|9zw4b zifmuH0lV^vmvW9eyExVASWEt)))6M%`=YJF7-pHqCaZICjYwSA(=wH%t5*f`;%hnH zGMNyZq_`aZtlrI>pH#a2pz1>`=C)}Q1&(jUqNm*&#c)2aW&GglLa1v8F@6@(osPHB zvhFZR)uD^`$hA9@CyMIFTJm}6N4gqbmlQFPmKlhxlv}D;qqR(D7vESK$S1#_s}}t9 z=fWR7ctm>c$AY@skuv8;e$AZQR#LrJOKydz3Fw-^Rm1{^=5kk&l3Wj6T&%&3-%QH& zm7KSZu)y4avH2YX{1`g!!#uPBWh^=^ca^MrKlxf+izHiS!Ac*V78O5#O$6GaG6Hpf zOyuq)80$Iwj85jxlB73y)T!L_D%moZ^*oomk@V-V)mMawG1?KIabXGPavQLn$8(3U zwJEvY(roOj+#PD&M_c1|?;r`2AD@?% zTkIrT=JT+;T#cmGnbx~nqUZ(*-K!tpo1Z%qbZlnfZO^WUm+0AfT<4bOhTC^yGswP? zsv1YEh3#tia0=~~AP$03OZ@Tm+yHo~QS>$Vj(FkBIhWCchh52qoPNh3z^s+2uVHtW@hW#hEw@Sy29+m|Z2+Z+8tvi{}$pQ^Ggz&%s zRSKs*C#iH+kl`r^yl^pyIr|-tROSs3Q-$&jza+;Ee-+B2;#{i(a3mRS$lKh{{R-mL z)1nnZ*7e|D{+=5IQRXL1nsm1bvlb;I*Hh(WE81MGE$hw^r7fu(>M%Z~J$G>Xa|XYv za$HNi^Q^LLS)OH?Fck!5mA9-5R*c0BV+2qDJ6XC+kv^qw9M@ zesA+`PjRZdF(Bf77WTy>+*M(z>2P%{nbcOr>Xz+Pv6c($Z_*Fl$uF@7Tm3j!=$*XT zCz5RK8FUNdm13(31G zc6X!7ZW{5M!Ffm^WLd%Qw#zdrl$MqB?7)%vL_Y&~S3_QF8PeJdaL{3sukLFQzt@?SaC~GXZ@18>bcM!_mephmS?#M@m$!D6Md-w9;9J1y&DVF#TM1ElKF;}J z50YQXlW9)~uV~cwc-B-q@Rs}it#q2JI|JWOOVJh7fW1tlg zijVcIfsxOR!>mva*_h{d@L+M&yofz@`6=jV5>efA2tFOZA0?1+wOTEPIrx$h&m4!h z3AkH8p%B_!;rCadIyyiSw@+BZdZ7{=Qdl0W)%Ue5z@Az znJnIF+{c(-SCFqa-ATtG^~1RL{*FH}0FRH8dG#d86~?q}XsO7TS$Ef{v(~BnLK6L7 zjEk-ChqaMEtRIUQoe$3TlQGJwW--Zmt5mul65h1BFui9e-X){+KU3+xMWY|t{0r<% z)f{m!miAXM^Vz&n0QS}@ckyh;DO3S0;rZ6NO`9txi3}qU+Vu3FT2m{lRth_3lp0r=uU-{!i!A%Om~rM+h4tYSP>I zIrzRa7~v6q&-+WNi}aKaRJ#8q%(c2Z{&^4obaVXkccAY6GsdXUt#+j){eZhZ%=;6k z!~?2%N9Ld$FA_=Jy|emXKq4~zdE~bwGloqhDD~r5w=U4}p7UtKES~wRVauTP%D*O) zD=sugZoQtYF)S|jRj-OD|DJ>^;gRUf7dOfemK60BwccUAdlm?4iB;*P^{uS+_@pNJ z@2ey|vkh;th$KX-X)Nj~h(|O>v$%*Y^~5Kxiyko*I#%@?u)uHCqA#gG73^9MHS~gs z^&riu_+>J)o_sjKabN}IzbunM1mfgQ{7P`19w1)5YI6%KOd{TKm=i@DxV>JjSMGAR zHlT~Zu7{UI&3SCs7e|}WG)7keMo>(CVyq$J4B~FOd?Zb2%rCUhe+TvoY)a?+St`AH zgU;H7O)10O-0E5A4TA#jfs$iFCHWm2;LY-9yN;}dS3Yb~YUyhe>9wl*9T8Ro_y0bT zfPg-k{ND87;{GkGsL^pXR)*(4RI$hNb}5;2yR1hHFA~J_t)y5yo|Z~z8a`$09qOyg z6Fi_XFBzJTtlhAsI7@a;Vr9*;N)L^b-jl~f{_5dW)g289Ox4nR@$hv~8=l^O$YQ@2 z8|2Kq)$qviVv%XRKVYh9`5#Ixm~|R>fxZ!FyE)OeT3>(fbSpwvpAx4nk=!5&3`g&Q z{~9peUjG>^!l?jq7~N_NnM~Z%cdc)J3cA=$%l~s*ChBA3V*7g_fPUP&3 zqX!&BAk(shXkAm)Q}TVCH!^Lm$xp&DHxp+yP`di5?nvY8V67FM^@#tr2lo56{8dr_ zo98n`u*Q)z-4LVJ>R(PVZH;rRel>q?ZER?5MK5ebzX&-(XQkfXSl8;y+`qe6$)xqZ z#(q{G(z{mGYJn5ArQ<{eYWJx0q=;$>mI&V{pd`+|T*C(aFTW4X;3Jw*q{L3t!4u%h zJZCsOmJ`rRWDBF<>%Jwv2TnOH*_aQ$r*DOhF7q$<=i@4>_haE{h%E1)n191r)(7CH zES`5PzYBf}tmL5AnSDdcNaE&g`SHBX$X$Se0rSbGH~ERnn_-RY)wn)Ml)j?3{54r0 z1S>E9BUiEDLoPd8M#=qkQqyIKPKoO*< zl|Z^1KU&G|eCN0Mk0iCeld+byHQjNt^k{w6OrKu8vix8*IhSvB7zUTN&F{%~-p}tS%pk!0zdJ7&U>EwhTVg4X^S^`f zfuOb0-wNnLpbs~;vLYn7&rFE*`wSHn*~92;ZO3Ay0&u;q>pZN%yi6)U)Cqkzl8*j` ztzUrarMj>`n|%4q%j~hbP|a(r3hqg=zWb^9-u<8CBaPu?;Fj!KK$O;#C@uc;GdGxZ zfxBm1=~VdaUC#@aG1r(!t$Mx_1aq{|f?n+L-bCb4*wn-$E>?p$XO#>P2l2tD`X`TV zWP0&QQ%qocn-$EI^%O+;Im5t%@t=nQpG_5FHxcfl+M(b0$+1W%;~9UV0c^p73S324 z^Nl3#^y5HhBUrE-RBhPgy@g$o55=uE1u^Z)?gtl~ltNj!=9>VBfeX8f{Aw!wV56_q zz?z2;-Uk>*SoIXC*|98i*7aMbw8FNd{7kRedt$05>6he|9UUZtTB7>u4O2=7I;ZeqhC2s=Mf6P|Y4fY3FZ3 zQqP}{k>pH)R=!O|oV4KNK4RgA)NDWWiS|6|3pil(% zMm{DyCa6^d;q7iEJr4qmfWZ(YPu)<*3T5>+vep*0;$_zJ&Z}V*?@;N!v`t%;s!=^p z*hAFPPs1EOsyG!kR?zSCn$**QgZdDAzNj^C!0n$Y=i)L}p!DEPPZYFODxhyJxBZIT zncs@}49)wrqC=#NtKen)wU5E$$jcu2OaNALY5~?$7j&RQynlBEKh6sxWCe7*P=5{^~qWG17;~I5VDdGrdu<41PlA%XS`}D2Q+rb=VZ6*j_eGt zzyuL#b_EqOJPr@ltXITJu5RBE>iHwflQ7%(yb@+JT2n}V4Vg~^7R+O@mDjraw3vfBmoCARVVf<4k; zhA2D&*gX`rXc+Cx@$Bla1wHZwgv`%H|9iYaJf)Yk`vl6`#JW;J=FD zB!m@${j$#akbjjG2-RUvcHri{=FTym)(8r+0#`NB36gQWywsV!^IL(xGz*sL-|w(Jr^U7A}=oaJ|CAkVLzkopfGB#XM zc$-$hpRejNqAA$Eb3rUm{ORSv;-RZ%ABHz;%XGC1ljvS{hbX6*r7kV#&V1h9=FILq zF4#^J}zSq)XfENNAx}Z0~c#!pOQkW!- z+Y`~mkE5$=5^Ja5S0~xKu!GRztfz#5f}%RIpIa36V^^9No`wr2V&m+Pq{-aJr?4j? zOY_K9g}+GB6h6$qaIwfOS$?$w9kgL#>*u>NYv*^B6!T~%!>*mrCixaViti6gWmQn& z0%({r8_F3@>Wg9m!)+5 zPjlYfUhf?-X@ubWveB^Qg`#Bw5BJfnka_g-LPTeA%e4tbdmcHx`~`_H_ZPsGm(w_Cp)_YnE2`H8qde zR=7$bTjw#G`=CI=Yj2hQm{DzoBZTY!8Zup!DnUEI~{6D*_gu>J6PO}?bs z-mL@wE#zkuO6z=j@`=YF;ajagvEJD#^kOlZ5mhJ)B0==q4)Ft)c>x=oTbL~CO@QQy zpDsJNv#5?YwjY~VSa`%q4_h7mj1~c+8^lp`<|m2@U%^~3cIxzOZk_1jD=4lpII)e? zn>(S+KG}2;+j2bDm08};-9kt=@RBWK5Fn<0R`MHZN(V zpdPU+m1_Mb38Sp=i2T@bC)ULkLW^_0(MXj(Il<4mfLXhJ2b25qudP)2j}ul}-(sZ+ z!Bw4zIj&IZVdDyhm3DMOB_`Hzdyy9EVk}sytVgEFXtz(fcI>{>!cAC``OZ6q3t*~p zDF=dP5(9}%QrYHLSr6CYXtzVu25+usO&R;c(N7y;UGNQw$-%SE#MwFvd`2<^6+<-H zr+Z&Q#C(=d$?n!jq5&4v07}-UR4m_9U0@d@+fiBVA~-wfQ~CT)n>DT0!(EB5@hA#c zE3Fv8D9$^QEV^)PPInm4{hkAp9HJLN0NWcB-DhFEQ3!9;qR7KZXu6Blg&7=?vHbOeqCHqzW-Cn+I9W2IlmEFbX`(f;W8@h@&vU%*^<`F#8&41*^>R( zsc435UB!oYF6twxtfW_ah53dQw5Dl)Emc->XWDKv-Qn?A=qKZT3BiMzCv_`|0GlYJ zwLVOuQG`}sJt#hYmVK&FkP{AGr%-$&1epuXLUNy?lM0GSikz!|yY>(@S4C_!dW`nP^;&iP1~v34z9#O(p~gQR3R8fGpY z-GLd%2|FBHoN%bD|yUShhbMV}JKYAEY3K6{+87zfPCc4j(im!~m%rP?6y z)Bl+I>cfVuJs(Oq(ebj$MP4}AF7e^B$8UypZEDwx*(!vi=5| ze8MNaQ}i*8X^7rs{Y?hm_y>z^eR+KRidhPFKfXvrz(NknBMlo;)%TU??$%hlFFSao zAtc6OH?=(Moc6HH{Pq>yM5LTt5g%Y2@tQd-@luhB&wEhR2T}DD+@5m{-a_`JAF6r& z&sR1|EKNS2!xG;sdQH}UOI&#mL`(1Y{*Xr*E)K(fx_V>2tpARFC=eD$Fkwa)u1?&H ze08A88)N%XY?-bs?5r~^f!GZlEoCrE9Oh9!UZ{JlMO~0hG~8OW1dsIZ_Zw`^Jk?ed z2D$$?K-mwJebgDQUh>61XqkUxw`MpaGQ*{!POw)E6T%tr)t?IPV(7Buh?sLzw zK8;1qZ)rLHW|HUmH;H^6I+IGy#^B56C%BB-;9?wP1FN<<@pmi=rKOHSA9_HAM71tgI?+sxi$L{!W~lyp{d-%e-HT-({I>u9@B&KIBsnC z8R)`Q)1j&I?6<0E6}5gv*hT;*Z1uW=RM!hK!o&38H*U`CBb|MqY(S3VXZQG1eq5X_ z1P1Ez#cTY&_j#Bv7@V*}KVv&upMNVZVs0Rx7jQmKmJJFv<%SY}>G2m23po!n)9-@M zH-~+YN8Vn9ccaa!tJaF@$p&Yp@1kzaL&DDQR3cMr7<%+;_^aFFO&Fn8U&>0Rtrizjd)Ab~a{T%1VFe>dtg8Uw%kT zyo~j1ce!?Q#QAp>QbW2=b!O3L8)$)DLjz++TLXv5hhwq4jIY{||8@nmP4q!+sJmZj zt4FRILRX8mfrA^Nf^v{fCur-$ch0j?Fum5|JLEHCu7J@Z+&3$Y`LFPrX+d_Djbwu- z*B>A6I7Oxk$a&X4Y>n zjOTTxpZ^O-S^vDhR=^k=GUXvn9~Ca>skRNfI99yYBw5ShF8LBR>ldo zCbZjjb-xPf^;fPTc!(NW?yqfYObc|V{-v7)H&V*3`ui(Z`jb)}AM~KL`U_O@PI$@I z2qyHMao?T(=^>Q?K4OOEPtp*Rqw@ZuE+Y7&kIt(Fc&CVhZZYfarcIJheANo1z9%J`(-bkS6n_?pKO^6vI`k`2MM+?^{4d?1XQtKXy|mfgJTKp>M( zGk!p0nyFB2D=V>_xxnOq~!co?0#MOEvI7l z4}ei(-gMd|d&6JD;aAgyNplg6=s` ztQoZNd3pUS!MrKM>$buX>@5d!!GLCPB!ZI#`?=!ay#fSoU3wES4@ku=8#*}_mq+iP zT>`h5U*9tjJ@^qH--S*Qy!5ZC{wT5B2fU8zLI;5t#QvV|zLqvM0;QQ>_C*?u|0o>4i! zGs2V?vs+zrcDu!#WJ5S5iR0xA1512~cts+!f7z%Zb^6f~gmXwS#2^8Ek75v3nbWv~ z2o!L$qmcR>E#Ikq_^ue;;%aQCP&V{s;jdqa=5qsz594O2sxYU<;ipo!DZll*os0nb zXCIh=+d6Q5uPZ#Qn*Hd`ABJ9lhai0WPdZ|NL|?z$0$Gwv5GoTF;5Xd9MN$yTrb(?))=LUR>6+w^(j}=CN=1?{%34WqWDdQb)Dq<% zNpNQly_*Dg=FrQ2Bp&WDoV))M|ZDmP0mp{nHsE-*VTcV#HuSU6InmALhtgmJ zdJRD~AlA^#1}hnZyR9K^xc{?xq5R$Eit=Y$ZIu79VYBG3+EgfuZ1BO>=UG<)LtiDK ze&`oTaPJQNEU7-q{G@s)(~>+;o=S2TvG)3P*6AqMuC`*m^=qtHZ+(n)BFbp%cnokesS*CY+Bz2HDl69h z|8I~3!UQQFcRj5A{_*C#<%$<99#0;3g>zSZo7JKXz`8I0Gxkdm9XM z&)jjiiRJqc?2u|zGI^3=zfaeM*PcFmQrP5!i&boC#)Z4otS9^Bt>fdW4j{P}9QOC+ zf5qyqy19Wzc1PTHLXu-NKO7CdZ(I>x%*`vuds}v_Yl{J2OhR# zl4B3Sn_^u}NPvX&FE5CDKt}fcj6bsFlXjZAH_-Jq!zQi_=w%kNs&_Se-5@ z!tYpCmNx`aI6Ql$MGmo3#q!L;&2KThO8yYy%5mI!=fVh>!ClGsB7_XBYRz$}%7g6T z-Sb}b1oL4#x?R}I&{(-uW0fkUj!f@S9H%m@H`cdxVDrvjML&az zv}(he1Xo*o+Ro`8UJi@TcX?H9SiQfIEtDQnq;jnSWU?)H5093v!C|Qh_lveHO zV)iywJ4`<;t@?rE2P7UdY-Y9_%0k*kPg4G2*|3H0QuJCj>9JN~KXh~oF0q;3?nyFw_DU~FsaN=hv_dUPsZ z)p%owt&6a2gn3&z$BM&a?WOX^TI{|kTW0~DY}gjxt>7!d#{d=^cGJj8TB?p!&D({w zn^pWW$u{2MwssfliucOhFEHy{G?@NO63Aph-wIvtfa#wKmUyQJa z-?BD?xmE31#rIUQfzbwqSIY~bGEy5QjScy%7#rqn4tBsx78gTdYuF1B(iMJfMR6eX zQqv0BaZPmbB|IG8k z5~&AYwYzvG7B&$qr8}{d9$=2M>wZdXWK5s8OO!u01aPZDgK`%_2ize zpSDBTGVfmF0LyzA_gMK$7zbi7Tf(6UFfi%EAf(t#F{D3xR^?acuqS456uq6Ocvqin zN)I;Ad%pXrqlu6s+d9|fbqb10o%v4}FCZdG#pI8pnYCIo*&tM#ck!rmrgtzbKc5z$ z9K^c8YquPdUQa+`L6;|Mba{#}RJ}{FP8H9On!WXYqPLIH+vys;eez^)vHdUEnf2;b zH#Yba?~wn)+Iz=Eb#(vZ-plR+Dhgu728taOVGDM!cR`KO7!~YYEKy@DkQj{}Lu6L$ zCD9mTV0U3Oi4miw*#MDVmZH&^C&9#Y6MyeBTS3h8e15O*A57xid(WIXbLPy%yX;sE@$vzg^W-jvd&gn?y%MKlZSFC zDE)8XbQur6;(IoIa8Kq)GXvvx(AT5@>cs)Bxy0i_`wkM9#?cOT5N5T&i?vaWj;Ic@ zm>gtj&knWTippZGJGGI6uF?3$+9>S1C;vJWy*OUva07b3T(;3?Zu8D4d% zd;=tJSqTTzSSpHAT@%NQMB5})UHMkd9N|PPBFxQ%LDw2mXZ@Wqf~>nH_WCvgm@Flf z72IOGUH?+@X>-$?sicw4$jCvN2@|dfgIo`1DBv72)LHhiLmlq<(f_45Mp@5=AAL1F z+eI2x6D&b=79;G=M9=i-yfm=29r_#Su zQX&$E@|`Sqi|XGdkY)J$*0vU`N~Pg)(0%)YaIjl7^=;L49bOI9dw~0}I;xl)GOy9- zJJ?3=5NiU@i09z>9pL>~13Z|@rV~6IbnRl&dEDck1MdgG`woYDe6VT- zJ?6_Idcq_Llqyu@kjSfQrEcPW@)O>p{GuWS`y~=tDJX#cbNZiL&b_wTip2Al(*$P@ zVgHn0Q_)7c2rFLBcpDe9``5B)EbVP$vC8KLGFexJ)48jY$micZy46rt1^o$>o>l=A zwJ}X>U7w2`$CKA>oKb=uM@sjWl|ldD^345w=gbEvtAQ4Mdw!vq!n`!Ih7tnE>1h`W zbzPi0ugN+ql12n%Y?GuH`JS#Bi)B?XX$f3yCHRK#jnq^!MKV>9&25WNa#;3zm)lrxhVwV569Wo2qVWz4_lGGd4=nOKf_PMx6f! zDeK`7GPx?-29w64el-`mvFzgbjDhGa`Tl#q(v8=0L?DuluxHB>*|v5GH0tC2uy{gi z7WYluY;4~Q61qK~Jvrl`EC)BBkvx$2f2L+M!au$L=VfL&M9s@su6UW0p~-u$k(5@^TzyA%X9yto-`}}d9EOfD3JA%~_GfI{F5Ss^~K?bf~u0_521%?!he*nLW|+P7|AfUh>*#!WMv!VVavfd!(v2q_&4?zDNaWewQb2?dzDh?g z+g=;UKe&=HR%VBF7u-`1XULKq3}yc-FP@O>AjZi6;Wa78n>e!!Vp(A&3IzQp44?O} zem1g9?wO1SQWR33Wc;cMZjb4Vbec{Ca0Iu(AKNpvWfSsVJ?%hQ3(29s4*N%p$502> zGugJw88hhNL7sLlV}Oes+?mG)uHNeSa4|kSaXr}S8;);AsHB-zEV?GPPM*OtzR5s^ z^I+(HgS+hsYy3>_G}_;PMPW&*xI!ITx)x?TjF<@am(0vRM|rUyKFMe(2lpWT#k-bt zFCfuhRymXpIl<+$>r6t3kn8P81~e z3B;d%S27+d9;^ohJfssI6iqUTiOYx38+4rO7Wf>{D@t8;g5_( zFYv=%GZA)#iD}7kYU@nGIO51B@D_nbOdTHID08U_G=K@HrdLHZJmTa5w)g!q538gF ztn^?^dya+KgzPcFgAc4po^L}5O7P$z-0w&rc@Tj7RSphQqvewVz8kwz3lIc^mLT z8-~Mx;bZc+`pl$j=eGi@k#-RPM3=A~O)`;{XWWUh)Nz^X zsVdBdiJ382BCs3;M=%_RLhbfT3@EpdgToU>-I(NzK3ub3U|knx z-XVIgSwEIYqP6i4q)!=tWof3Ql9QKM=%5USZ3L_L?7NF=0&@XidVKMa6O(&URy$YL zyYY;h)~O?S4DgOqFDoSs;k4!Mz}CHyxnE9>W=BJZ3l14BIOOF6k;zMW+?$z8z_etm znaUmoHjid^k7qVv=K77xoKe6;h{Z6CMMSwRuVEsbIi{@O23r!J`HmbM$)Y^k3qV(} z3192=DS7ZE(u_v&WhVxyT<9c^98bftZt=?fneQo-$ty^OCz7W?8@*E%JZGO@@^Th& zH1i|(;F3W;}m+PxgC)SB8LU z8H+C@RnelU7}5isB$0?LcS47jO;p8(n&b}~@axmpGbs8Z5{zAXK_k|TFF%`!dfUO2 zaPTG32}dVyxDe=b_m&fH90iz$)7=6gpom^Ie6A ze0`(jR~()LbwJd```RVL`PykV^;(F;4&2I|gW?7^e&N5R zXV!6*gO{(j}YCRyX)%Q$Bij2*jEdO>}y{}<1JdzC-?{Ivz!9958{t3x&ZRX+` z54{H#k%OZXuHP8Ke4E}L$wI%$>>cm>;$A`xNuri~m-!COD=N+%r&;VwC7o?IL6TbV zYeJEW1|(fRbTdQ2X+ef&cYjTKXL*{jQ)A*lT1W;1i$w0 zALH@?l!4JD0^nsM7625plr52?>8Ifq)R0gJHg>D?#6UjN{q|uTWj8zzKEs%wviIuW zei`FNExLCo4ewGCwI2LIgWGUrPoLERky_S&H&YUMetM-P2mQ)i_R2T=Qr}Y?wXaPi zfGkdV5TZC-T71Ef*ueY#Uas`NJpy+64J@MF?X9ZdEr|n?*K>2b+u@MUo8X(Wj(k(T zR>pwg-eix0R3GuDM{X|?+_iurDwKRz=i4hWiKwEkRrLc0HDYlyZ!bTY)M<#r1qa)} zU82V2_uAhp8xnJI|wQhRan1yY(Igr>e+$-QhVwpYrID zx7W&Y@BlyaR}JF!HdQe>@8Uw~p!{*pu-$FH(vRD;- z?0~|csMfhE_z(zveDC4gU08aM>LkxTaytO3__uC~(|$kxPtxtHf^|7j3~3~A*KC-2 z>NYKS3KtU6;&ld&jAr=u3s{bCiS)E=>9O0t!l0kzQ$Vqe|9R z5qn1en!(k&R8L{76ed&y(%;yT{+r23H`AzV9gSY$x+feyd*^PhCxnNw(9;)!SmlxW zM=e_cvI){++a(7l^B(O6eQTX7CqYZ{<3$|88Z~T5OF3bYPXjsF$h;mZ-(;=s?+RnS zUn&Rk9q$f{pdFg)`w)By=81@$u8~az@3L4@H zs}yp&{deR$e6v>JsC4DOaR`QtigrV3$kjnYKZI@7$N*}m84gE$#1Gen= zS>cp1R~7sXsO#lKT{-xR1pix87})Q8N@cGfNCZY*)MPRYa7{v5Uj@q>n}ztMheNl( zaPoGV2JX^XlO(#^VX(__a^+sL9@Q3{dd+?~8)o~mlN@}DdtJ@>6h@ketN|)HIHSt0 z#}WV2P~05v{_EcG+U+=(gv+;{D$_CVcX;Vkx5+Mq;&HkIWb;evtivuufT^j`Sx=Nw zBg^=e!CCm3N#6077)1JCcKmi>l$1-41pRF%;jslLeU>(kxTIrh`#UO`t2SjJ%_`D# zApt%70aCwq`&ddit!k+X&IRZqr@_d<#nrWbpwK~nVt3Y1mDI$t1rV88`lZ;_s^CI= zUs`P>WkjonFf|R!x}SO^YnlR;$EKgi(nFe5>|bGMYMWLwzP-!6jtqL_!U8X3Qvg)( zJ-#fcRi&6D1o$hTW%4%c>L*#fdEkF?{bhdSeDfZb8-pBtzZw<~99VqF@y%CC2|mp& z7FuQdLtx@#Bk;HAnH_zSxX#8w-w+2OH{P!fMup^lJI#iZWtDtr$EBgnl5S;CH+uCN3RXVK3dU*ncV|}l zJ!_{@YRy8eadCr`e_~{W2DB2AHqA%n~bRph^wrOLZd$X^yb(7v5*M3*k-@O^N0lRN_C58VYRfw zV!#BRNJZ<4Nen@LZNCHg)$w`onggD%1KvuO#_kLNOF`GZOt92j&#)$cxYwCltpUNG zAOzvYM9Qd}Z?3J+o@!NrxTK9|w@%&(2C0^HU!WsWL7!G5f}LwZkmkH?g6U4I6d?9I ziqkm7!c*?7a#wfUq&C296UjM{M3R2^h|-h8Y~dUp!%F!bKUv-Bx%;!;Iyz{1dH~DP zuLGviKJ+W0y3#hQ){_S5wyK=6zyQr^HzRydVy#=78c%S@7vm9{1kjgSt%I6`q5%nZ zv>?M6QbJy$r*va>K4=IPYd@q?MIMjzJ690ZC(=XMI8eW+BWVS^c%R%mU%1NZU@X1~PVg-gVD)P~ zB*|(u3(IQZ$9zYg6G?4H*}ratzyyWe9k&@NUg76}NTPY{2r~t+n5}c%c;0t+Isu3l zy@a!q#<7Fz~Uq?YxEXHWley4tBf-;tHFx+hoseg|a> z)GT&b_eF?#yc6$A|M=}Eq?nKK7)4{fAkH!(1_P;c+cn&a7xq++G}4p}5>qzbjxWLl z(gXe^jnGB5&QQ;XnJ?56i6w@6Gt@rq)GNr^m)|P%W6Ka(RH9jc4L&9V}Wzvy$hJb_~bU()2Jq+df)-2 zA=rMixBd1m`sSBQ(`8w~U(t)*90;SR^!rm}cJsB-BE9gN1fr57Eb(R8l0mgkb~jnl z+3%MF-PNP_O*3feP9SPAMUIjWxvb8(1}9c)z+n^qeMB~|P361} zT9k(A`x^J>u2ZvrlVx>yYGn2>Nzs$CK81BEQS+Fn?7J=scpq+~G(^)_lHa$GZ~BN& zNyF^R_Rh$@%hoK-o}Vx;`<~R7dA^n^W(7r+{k~Pvq)dEkkOBG3_E7pR4Mk^mvj6nL zrrrklIwE0L#ZNvc?VQ~zbwT##dQ?vfs3H9s&2KNuHQTdxnu7nhCcD0itbQ?dUG_ss z(VspQiQ+JVUVOxc>_;*s9oug2sxgmwD;xLTq+gY;?7$n@6S&(O*`d3kx$OAX>@}2pYzx)EZp)+J%sz{}65F%il%&B_X;_T49UFDm zttpFZ)kx*8p0=sEVUSQfP=-o;@G;rk1-K;w1qKu%Wc73`>8nm!dd#QSllo(cxlUHm zcB{yxbu33PEwU-7XD}&Pb-0>NITj*fCR_GR6D{|=n+;|Bo+_c z-_>(iL}(T&Ih@HxZ2)W)RC5Tuz(`V&ZAm{!|GePTsYxuN`4}eByB)y98 zx-l)45WkPUAqxa_l5N@kPqOC%IBWpIzr9_Jz^(fcZB!qjBBw8})K(y)L(=yZI-WLf z^hjjsx|MxcRxhgBGpUWrneUuqA`asC^LvK}{695zj9s!bKYA@Y3e&KZ9qsPwBV0L2 zI(8B&Ll7RG;wv$NsNtEv3->(h1`C|6j!L=NGn7b*7Oq$zSO*Duo8%02S1*U;LZ&sV zP7++-h_^4!&XttvB_KX4jqEs+#i?p{r`o9z{GK_x1(v}|9vhUi5&ZaY=nL4a2IpL~ zU2Wl!WA@ET;0RTQVL}|iR*NS~&3GDU3X%Ne(PIn)$+q2gXd+Kh zR!Hh)4gH-B?16EwBnAJJKI#C*(C7P0Rk(11^S9G$IjD zNFx$I(*Vw}g-vtD(TVsK{H-O9p3d=z(T=EUMnAm9B%P|8gPZNQFekj67-0qv|0DMS zG}}PQGTim-=&!!11a%lFwSkOCFK`UjqLz9V++5NKfNV#)He62QB!YI!X(d?<`VDiS zFABFes8S+Gi1)N&5+@xrpIsu;^hqJ1qD)4R#Y)9bN)f{y0OxPsuc^e{AuA zy03|2zMn&aGh(KlNI)BVJW*f(M9UVshT=F>1MiRuL;V)rU~L!wkertl3OKl>lFGqC z6q@rbM3rs0qDC-Wa4oDt&vV$WC)rKt$IbZL&XQ+%hI2ex4u#&8oIbL82M?P(lQb}c za|Wmw>LmD)^cZL#Z4SNt4${ojQt$p>*F$+GZfcV-r!QIxAlRo=rB2khH%xryDFfm! z*b&cRAFa&!-W`q`>UZ=L3=^2&L#Roefb7w)G>osd##QQ_c>nDxGbM0ePc!u>u`{Hy z^4ZB6py0h{=X{Bsd2dy{fjYsN>d`rLV$s{62XbII9*n<_U7Xncml|fB1QT?fg6TPA z1uXKF2|1pKT2SwIf)WELNYI@*k%)fu{|4t!H8`^RFu5W8H*9DLzG^Ww0;AcIG>tu- zx81RhhN;v^`VNMvtVExKUF*Yra||yt&qK!@Z=6@DPwQJ5rm%|@lwOiV53N^~`Xrvd z^vu%}dJn^7OELndcaQ4Z875g$**QHuh&ep=%(#w=aWROOD^{Oq-xrXFIP(5us0Tr~ zb&i!KMs|W>WaC)plR3Gv`due*r^KYa_wQsPqx?{EI~-&e2|*S~jnXO;3G{drK+0*0 zm3yihY;c;*nDQB+tLJ;p=PbjrI+5vvv}SI^*vI*oX*s!&go{kI7Z{5mHSta;Yf z&0_xj^_<4|)|83xlWk+qQYU@5CL`wtI{7qn3b`jhBbCB^@^bDYTrVy2Ln2UM4IPoB zf1P`nbAACIo2oH?3NgRC%olI{&(Bio_c>6T!aNDV!XbssLGJAX?D-0u*qm3fn(46*K_{{nbBPil~hMH@xY07oa>2yq~OPNhaLfI6+(kS{r} zcQN7_HH{cf|LQB%KE3MvX<#nO$j&Bby54m7_(Y}tMjvIEg)HF7jwKXC#QPFb57{oC zr7GeA)L+GWEq=wOH%-S>wz#dQu}|hd_sOk~%g8mWTi(wy^B9`@3vEYVDd3^J^*=56 z*9>pL8rg4O$e z?rK+cHiDI(KIP^NZ8N0p_x5v0j5Q3BnX&$xat*ZgZ_Hm^oBy>bce7y9wY0{kumue} zgpt9kpT$#iO>U3^9^=-mo+Ptq#3ABhoO_^;0cFz8S+hY~f3vKU&a?y1P^n>UQ0K88 zx0SEZj*37n%!4qB93U56bv{dOaXXR&@lc1y0W7<9Igq@JI{`;fLV);cl6|R(fx7Z- z+jIR?iUo>V?=!FU*PU2h^u0i(EL0vB7mrYYXng{~h_4Hn942RN| zsVnRP9=6u^bC0QH^}Q1E1#xXN^4 zeRgHnP5n4mhD?26htJb99(NN#kAw_XjjhVhXV0>zu$(yW>o>rz^@vLr;X|9LgR_x! zerkuji@yk;>j=v*@xs5FJ{*Sy2T)o4BaixO^DN8a;aEIxVB4wWJt9W_$G&W7&G#W? z-}PtCvM;cuT|-f>!n%fry2yqVmIPa3(}jG3>g@v`_xg23EeG}Q`vMHhX}Mc6Qq$Is zcltA*&k{pb>Rb3E)^Af3yANxieL2*k#l| zGruc$zDfxltfdQXa?&3`v;rpmPc)`C$*}G?X*Xqompiq9Qok1R9soMK^wsDt7I7Im zxHgS=lDGeRQ8qMnc<<+0vJm+7V^`73&n}6$_S1HMcRkRBG zu_lf4x~McRdUwMs)@-8 zBgU=K8R5;L>1sq&i>8wiVKSO_MjCw!oStfFd<^T+HZ$Pzs%dO^4XwLjE#~1L!z#3o z3@eZhL|tk?48FR^umEk2VLsY)!(6mq7-pmW+%N;}X9iLveQbzCn`)Sj_K0B`+Bn0D zXtx^1q1|W*N4v%_8dEUaxE$>)BOq&M8leZ#PBbn;JJvW4?J(mUw1bSZ&~6Mh&cuIu z8qtlmn-Lvo{f#f9ZDK?w4y}g~IajpqMs%QgVvIohixC}Y9vMfXvtZu0I zsQP6Crcyn{fJs!pWC%q&*?>t@PcmQ<)e{VT(T+D@64m1jJ<&#NG=$(k!wovL0}N`k z{R~0qa-oq3)y;s}Rd+C8UjN_btkFo}nATb0$(?Ul1y zFg!!jjf(88{PmW3F)CT3s48-*Z+uLyn>CLl$!_`zTVJORPL(UBUq>Yd3RJAV%0iTkRQS~gyn6*IkaQeFnax?XN4QIjUJ(h zOP%%DkKQ;>8=6Yu*C%%GYQ6n3&w=;rO7-l3;Z*VsK&q{@bAW8c>yOX-Ss`iS_l)gf z6YGs|@d?eEOt6tMG)+~5e63-Brq}Iz$3U@du&2F#^tP1md^j_&iL7bJE>);}q%t0x zHmR?RfK4;9OV%{vQG>H?i({892p6NuNL`fIK&3Pwt1zdOdb2Dd)PBOD^$rQCVP47E zvuFwtbwdaf&{FPsqYE6%DlKjg6p!J~-(7=ULuo*+;Sa@a#c5V-K<5IzOShFvC0WxX zp{Y+l*|466#^eRKOSLSvk2EPi)Psau>$ph6Mn$cogP7MjH!ZvPOI|k;Of9zu7*LHf z!Lqm0+wq}WuQRhMzd^!Hw?)Jj&GFZY67zjydz{SQ-kTSV(@{NMKQ8ZQ7g^(r*}GQl zXIbON75cn?TxCsLtGQPM>wy5yAyLF17kS(dc|#<-iT@84cw_ipOSFL{*7}1y#9B*a zvF$~;=dkc!l~0MHZScpuT6KLuQyM~KEeBb+zF36yku2>tjoXXd(@dQ%)W$t2FJ=XBYk`B+&~BGcp~( zI0^GZElmKAihHqx3&Ut~XgjYOl1+WztJXKpFCS6B55mc><+YY16{=NYiK_JtjY`Tf zg8%QKUtm6y)Zkj9Fy1H}8@5jHzr6rPq9!F&jYN%ca zy61??f+h2Zyfoe{FYkdYYl5nUIle7v7zK{f*gmW2qw%sp8R2_*{w!&3v%#`P1XDGV zEs2>S@+vI>RT@V?6_r9~P=5W8_gF<$RZ;W8YJh6VF{3ZLDBQ@3L?$0*<--q{XPtbn z_|VOs#9EVyAD~s*l=l{FDICsu%_Z_G-DRl*UE?>z#4)`4KY0sW$TJmv?#s~;$pTX4 z{108EI+jW)af%yFY)_*RRB)lCFY|5g(aJhZ*ZdLi)C^n;Yl;2M1Udgx=2s_w4OK$y zf+~*r^`yG|seAr(S@IGdz6lTV2P!p#^o@-y4n^kapDIn5-rrcC9eupKJ^kBV({IxR zBRmziS|-$ULH>V8LA#21CgvmbsD6H|tf3-ex7jBf3&MC{u@bs;ESR4#MPBOKEy$1$ z-o>>E*%}+=&rt1^?}$o0Fql)iSld@E;8^fV!A*#Xfe6OQ{S$^6*fqpw=2-=QU}e-L zEBO3W|9t2)HG`{k>G*g^4Ig)x<9&DbPYo0w4kK1N1<9E7vv8F=D{eX4fUVy#{rkjF zFH{Ttf_E3`+UciLh#Z1FVc*#NjxgdPq%SldA$<*L(TA|g2ls341s=qYlm=_M|I>2!F6TKURV} zAysY!wZdpyYCzFzfJ{O(cc8p*)dqW z8Wk;}pK<*~x0Waj%i~4}^jxfD?Aou5_=7F^lO(B`eZo|lshh?c;h?lNKLP@18qJX} z5>zGTZxhgGh&hrq)5(PN*|YNlW$Z*|t`iGYM~p{;m2Fu5j|v~E#3M}TX?j}UEm+3-{j)baIJCf*#d+2DVAH*K&0?Q^nLj9@ zPr(bcreL!rZgLYcp%E+56pTbN)PaaR(ufeQM9Y2%Ob%q6QWmB=8HXflrV~`k1eYoT;;Ei#g7Y+|(hsB)fu32_KX>4sXz&?vfGfAmg3`|%?Kr?R^I-p<; z;-^|$xTN~9S>RkBsC8>;R`5q_2BGGv9U%^c5*3oaFhS7Ft2D3abw>CEW)>lbz}EbZ zv=-LrU5zMJ`ob+CX}Z(V=#@>wjD94Vp+3`a$dm@Mn`TwG2X1K!=wa{k-+c?*;DGig zV(jqxY98@8-yNCvifb#G`=XA`KGFYHGnXmFAteAY&l=acTihaBpw-F?Q$ErWG8)+KK~C@m2QM5U0)H6zkJx zUR~zHAnELe)UYT;aC#!s? z0FG`HM;sn~8Ll@UU-peZqV;FH6ECmgN46ErAn8Jh#7G!Uq+?873vl|kpR74ddqUQ; zdxE_Ojvg8Sm7~sh9eX}rZCU^EPuh?_=Z_rmr9NPj6V`|}41>!Wkxxuy)uF*)gTP_S-I-t9~ES|$*LM<$@W18oBCtmVamyRznke*+m-|L`kB@z`f6Z3oE!@@LXis+oD` zhsA8{s1JSEjcWxOgl1(Ap!5*`$SnM8xPcA7Rd617Cco!BihvGfplq4AERZ0#oNb;x zLd;-ET{PWT_}O3FVaUwh=z!?X4)^-DHXC`lFdAUJ)+vq>oJqEYWIIvr;=WA_D_ppu zf|e~D;;fmE1jSikN%k$JX`f{5%_=jCcB?c=pmU0K>akrbS@^>OgRDtKwKCdBktYGT zPqH$BIAv8r63NIxmht_R9%7$=nf7_{;UZaco>(=~=~EI{zU)Gs!hsxf8!rU^Rr?nP z0^ix5gFMQzN^B{~QU37v-pyF#+X!111}G%yOi>jYB?;*})ei)7jdHD}`DA~8V_)6_ zA;4Il93%RaKMI@XfdGyRK`$bJa*-ZFcrP-JQ!lutBPl|HthvH*Ikg{%ZBw_65Nng# zvG7Bs6w1$bEew~Hn$HE4^gF49dXfW5s;oiEvmFdCQqFVL6BmbP2i5H0BLfT}B}IgR{-XS)Kz zO;d*zawR!0o)ephWo^TsvxkJk%r^i@#?=i@5D(EQKA?`VMsS@|Cl$V{Bu`1$t8ud- zdZJhsq-O(_<|d%srcuA*1nxb|ZPe)>mJo`4pM_b48gzIko3vMZ9=V{fuZuK@A6i@( ziLqw_v{U6Hy6!lN9y#;BJ+-4HPnmJB)3lT1g0WRoP=$3I7RwvY0J2c>OKl}2 zzU!gV6a%&`nVLo7S5QyR5??I#Q-z3wM)tmEgovUH5Ll0G%Z3u!k$S|=-q<}v0=0eC zsUY-Zk+v3P>dA^M81K`<&5~lcm}EJ$t%GL*u!8Ra^g}{tofFu@7`UxGQK@6#$W;b^ z#`EGx=YY}>P`(3{AG!4I!`GmkGWo>PfwhufT3I>Nu}fPvwl7k13tLf&z1GErCAdfY zkZ>hu2`$<`okm6cV71k4qLsB$NXFM#_|T#x9{pwEI0a3Kb%>&7)AxmG3Y3(E%RqDi zZrw|~W8F2s9++u_w<1`(+NhP9pNOC^){Q2SkMd&S6aB|fj?cmD$79~j*uj(DLgO2R z$k&{i)Yn9(ZHht4ra2b;7=c^_?R*w)VEVrb7s#4Fxz~v%uj9Vg`*mb|76K`5v4_Z@rQCh17wD}uT6-BWMDT2iX_Oc(Iv@ZMl8pGKmx1wt*Z7qFM z<5N)5>NChny13~ zY}x(ZVkg~!t=szIdnoqJyiWQAT3%&%wSH>rVp*UnZsV9rT#-l9mBN!DtF4L^dlw;4 zm$i6-P0jzYEwO1BC2FC7o1r@7A$aK1M%F3_BiP^99{*&Z7mG0T2j}|ruEt0;C+ILcHmY)(X zUD%|BtDCc!^U&9)4J;ZUYf-%@xoE0zmb9`W2P^)mkY2D9m8bJ9&Rtrs#Gb|pPWH~G zBnLdCy7;Ny{`to7(A+!ZLnDcO_j1uGh%s$#{MBcp#)7+#R16y9Li4iPwP_8=gz~`9 zVrNV?(xR9|Wz7chBg2X!NpqlWfRoof4(Lr?WUV*5G~)VH(#nY1ddsS%WJZj+Z^~H( zSIsJVLLK+myv>(aZYnZhxEF$up93Nb=Xp6iccEYaB#sw{R4~BHyfrHtEY>1wAKBQS z>sJ(EJDO}MVu>T^PL;NmzN2vxLn){EDsA(9gN!e-%2$dq-L*{>?u0(lgO;3tGnU<~JlUJYB(H72OSToYrA*urA7bS3!aSF*co7)obuTSVh{{; z=)jYnM2{oxz%Q_87^?}i&ivxFqDqO~I^ROcqjwg0gGQ>Fu_WoH?Zoy(d7A8y+Y;*_ z*6i;84wg8d-l`6mcqk26YJd) ztap=F-YbGa412;DI{kaNu=J9+MhT-j#?X!%Dr+fv>~c-OM#x$JUueKQpBDX~(!!Rl?TvWs^z9Jc#mfC8?AP)Wa`80m3ioqSK4z$H4&0TRvT(Ok zlUVKtZW#*S_7x$NBZ9gZuj9n)8J!Gpq;Y+ksxE$0Ay1%{Kz?M^#<|4`#>2y!Nh5!5dob|edPshq>pUhWAes%l-*rNru=QxC%t@ zB69+W@UR+WmiAuB5Ei=5TZfmzu9+tjr8ZRWf+$4?6#+ZE_zQ&su7kGPh?oHea{1Hn z!VlCn!uL`n7pO)_ca?S&-iV-GJV&;m5q&Z@o+05J9O*GifeVkBTKqbW7Cbp?-1Ta7 zI7f7U0ae+XEaB1TuA@lt^C`hp@j!yg1zBR@LY^-UV@L52%i7Qm~^H9CR?%Ed<=NcUzmbU2(6w^5#pH6}- zrdoZ!sg-=n%HosQP$#p9HT4^_=yFf!kb*nSAUyj}0clnlSzF6vru{Gq`M1^V z^J>e+wan|2We%1MQfW8n2N+*v;nolbK@2>7P48}8WB0HFMZxd2wQKagMkItw5*`=9 z;-O0WioTx_RZxQ7sseVoexUIc<`uQA%G0I$>KPFozvQ&zsaO>nckQCLY8&DF6GvJB z%lcAk7hpaZ0_m33H1?WUR4_N`>hcf>Z6m~bE3*-Y?d3&9#lMN&EuaQIYbRE64S5V>Wk%%f}hVoMbEN!)&Bta2Oy2e?!0b9nM~BFDa^~P#!e2B zI>u`G%uJs>5ue?!{+S<3e-SwuyI=h2bwaTj3oTmnm?BAVJUKD&w5(mv!rr?+kni>= zsV(sc_mX7DnvGR4eg+1L?wn-N_nYC^>Hri|1(09KWF<>F)TAXtCE;-Pw0+4#S^N6` zAGmK+gIfhO&j-|fLwFHuw{Kl-+{mQA{G5JcM>~}y zs|E9i^5e`>L z;@W0gWU=^RGxIvw?(2US>|+=v_iOIiqvR*>+gt2k1v+A8z+~bJhA$GC>i30fX?tu> zOXYP6m{#$;UL~D8WbIDpx=0k|e~7N^Q6GNdsL1o0OeG21N?aFFat*!5Q7YsTir*1x z;2=6-!Gwa?))n}4&nf@Yv{1%6Efi~Tt1Z1b^qQg&QqxLz<{nwH5DDxk?J9+0)#s-p zOZrGEZTta+N#x7Z&=Zsi3m?oS%)A#jX` zFDyZ-I(b5V6y--a&s!`jxredn>Cm2R&!9Zm>6=}tYf3T{3godI4RG(A&wmx(sJ5Kr5t9?eq ztYA;JWA4H>Ea)J*X4iL=s8!md`j#eFi!F@kC7!x#5AAd@!M2OnsXnKLkUL8z0Mi4& z?l3L~XB}1Bt;QG}1d$JrmiAnRo4KXfL+U>7B{J2C-vf2q`|Uad)h1M7-W$ZC$TlZ1 zWb_H*I}YNUAZw4ah?%v682(jCv+p8QfVl4de7r=fP#}rZes)RUr40-1XkM@zIf`&4u4QGQ`Wu* zT#z)u3S}eM@5m<&SbD5kFrTl`I|V2gA!DLhjf2aXE;l3|Z7g})4J_)_qC+d{yZTpK z#kFh~Pfwb>8k?`N1jU{2?;Ph;&;3eC6Ul?Ox&n!$(w^Bf+fOP1+8Lfu3(A~RKgPT?Z-lA)^EqwbT*GkHJ1#M6gWF2vWVg)zN}wI^H1#h59VG8 zy&Jgl{beOHvF&`C--(6qHoxLBzLq}=i)sM(j~?C%7Vhu8kw8y}7Qo*d9{N-^4g2Q! z1P^a$!UiZeTSj}oWP_xD9&=w!T@-v*f*?h$F(Ey_XF`+Ge+VGrP%Sfh#MO*aO};(a zO<}DLo7HUEVx21WaY=$imD=B@^h#|wcnx96p>7@8O6V77fRu#7e6iiOwZW?^C0z39 z?0{L|!deBk8&Msm_w!(?wCBL3pOO?&KM&?FN<~BZo^&qpF)ypC;nf85hy;c~?2Nxz z7}B~Cxq1*Zn%Z*ancxEos@#2$WjWk2o$oa?OHyMlH8Kx_yiD8P$<&CCZEXGsB>RlT zuDcP+Lz|k1yD6GbwhTBM2zvY`#iuRN&^2Q?I>?u`ms0)BJ_-ejYi}c!hInbKtUy`q zckCZ|2+4XmA;3J7+?IARzpF#q@R<4L0IU)!Pb`AWXGlXW41# z#^pfsRfPiCs@@mEfItLeA$|RpyQu|>j_ufv#DiG(U%lmHg2xk1jkzVbjn~qCks4^8 zEVBcr|7c2mzDS+4Wd{$LQ)uel*!f`dP_j08gPMDk+XvewqZ-4k9cX?FZy?lA`7g4*3Zi92N}b%OaNB{>ouV^OE##40}KuFZ%aWr7dU zN#@t^GeN$O$lj=haSROb@$A9;$QUzpC>UL^4YyvlrAZ4r^-)Pf*Z^wghSXW+hYG0; z^E=hwLB%^eTblf60gL4T+&2LC+vqQwg??d9fK9PlpVavcl{N>ey;>}+dCpu~w5w5& zX=xkow#?kP4yr`AUS}>LU7D?A5$>RNyh#?EWrt7yfou*j9&z?b!tHjAXB+nYA@dx| zO5J1*aG^wK@niuK1Udtdl(vvQe4Uig;8GRRboM*`qbsj`%Y4;^YAzpS$qPCO;;oli zXhF$wsb#{vg2D8WznwWYRr{P(t}&ly=EF@q;my;09(4ESgRCCW5&ZKEYVVkvNXqt* zz~VOKM@)*o(!RjHuPsi{o9~h{QXJ`Q1m1#OOW*8bg7=YS37y0jGV>j%9Ko;bH}_X5 zI#Gg{9!EP0yyK*VoS!||;?RQ~V9PLjr=Gz2C66F@_YGfD?G^0KzxUP&7e6=>TV&=b z^M?}EWZi1#BUt;VePGTfhalW-ffwOyd3XfQS%y-Np9c?F` zZZOL(UHx)_~7ugJ7(mUO-}RjCHYGIy-U{%2&OUS z$qD7=&xt=U(O9a)p{Mxc0y8Shz^`SSSQ<5aK`Lts(PRC(HW)~^CQ4Oz$Q zUa6;$Hm1@)vQrRk7Lu8QpsbLaDG0|3`8wrQv=>tljurAz$_lg}q##-<2bo?lS>t9Wx;hjBc-KCE9os2B3S}v>ff5re$b1m=>X3X!M9_(MFm;7v0OID70fuk!XjR5bmWLWO@m0UlW49bit+<(Y7^BK-ePkkad8J8*_D7Qz?GGjm+W(l;XumfFqkU)sd9~k}Kwj+w6UeK*ZvuI> z-{_Sh=$Bg0iq$ZQbwSinS!{qkm)HvcVozu6yO*#AqBx`A>&hk zS4c!kAGBjrfL6%J6rdF{Bn1eC3{C+mA%jwYM99DtLgJpOE84rJ0JIgRE@;b5oza$= zI-xb2I-)HxwMScIYKOMKz`JjWb8m(=FJW@ zEG4H|?Vp=oG$BP8R`9wjVreyGc)1b(?Qe4(Txcjg>VLUlWSn-bcENBheOm!_wbzgh zux(fls?qgIaR3Zc)H-Xw0C{uZ5b2`S{td?B$wPmIk}O7Wa`i1UWx&Q3aB=`x0 z7XC(R>ll{wuv-9scWUWWm84@~Py4U3m^f|k!c9TPqOMN+%Ko-+B+JLl-tV3u;kM6X zu5>GbA9ekD9awmS^CAqX8;jhoXv&_<`PiFwotI=?6MN}vrwocCSi*|ZMUsvq#BPz8 z{+*W6My{($FRG-ml&-QJ`+i;NAeFA=zBZ;YZ2E;T@n8Updv)z_mCgqmlF{UQ)Q)>? zDE*Hl>l!D_DvY#x9!AdWe?r!^po_^_OJEdD(*y~3h%W4GuV${i^VU*i6413G8_Yd% zkl!pKp-_dr@V6R2VV&o%-OPX6TZ#ZT9XlHD(}I|wB;nGY_oW7%dQ;dH*@rbsH z&UzmcoG_BuvdC_2>`y!FcQr+b05dxAuy;$NC6&&9-%L|DGHI*27* zJMK4X%32tSe)`CjCv^&04>a4e*lE3@kz2IqM>602#<_EX3VjlkAwQE-{>N<8?vZua zEn{i0tm_DIkj2h!)VXo9sT9U!9ecFw_$?kcsT`+63~`iY`riAb^ks#t>*Dl!n&ow* zLv?z6A}M?$p>UXc76+3Uj|fnM2fCM?6kbkQvaXvGgzJESq&bD@j_xMX$@~%>bcZs} z&3zA70mJ~vo3*}{<4e?TPt-1ubv>LQ<_d^u&Jb+_C@K9?fy`G+DoU@q>vRW(nc!7% zo-OOuPLTcxAv>6uY?S1#Q)6acs4_FS(de*+>6q6TRNX`GQ$&<;J>LCHd27K7lPta{ zk)z6P5fM?vj9$Y{2QuO_1q{axS$ff*&6!XBpIaGz$--MUr%BLC zk1G2ak8SqpF@hYYl{Can!v8Kc{iW9>+4K^-6fj6E4aZDGgO|e+Jd5_y+h02XK8AQf z3A4t6BrE8+U56i@UiP-cqkkVY8%az3d}{Mve$$}5#fLLQH6tz0MyZ`E`s-X;bewbr+XL(egM6|)cn1j6;JWcrP)}B7OFY8_)X?oa>*;XuA>5YXjU&C1gs^y|)L`E&c#}!<&tn3C!$OrlxT9WaH<@GY(^;6?8TyUnt50fG3(3PD&`2A zc`7dSSQ+q=Td+@Kn$42*WtUaDx%#ChWRd#vw3x_=B-dx{YiNS^hQVTwJzTGBgS##& zag=EWr70pM34yV&xgG1aO5Id^%9j0gVIhltdD{qPcJu7Vo4;QMk8zNHJ~!-m+3PwiR$lK6ZV^WA``gN^&YYRZbY zk8@?aJ>2Rr^PXmP*iJ(m^cdqYLP;`iHrt~{99&F#qj}W%w>VeC6~Q$w2Jsco_Vp8S z7RmZOtgl&y6J_o@329O@VFh~LyocTga~vg+fR(J zEm#l-*IalS^3bo!e^JRgl*wD!rL)saTIFr}t+F6lx0L(6a=N*gQ)tGpg?u2TW|a+6 zQIf1wp#XHExeeEuG+gJiE+re`KxnFAKR zU#3M-#yC=0*|z^R`{tSE!_zy%A>(?u>t4Y&1TT~7+mM|oaK_QmWsqu=A(J;~Y#|l# zGaUBhtfB>WBDJG5iXYdo&&ax0u|r?4OlFULxfI4eJ6&a_ib8 z$?ag2tc6SYJxq$1zfy3?I}Sc{EGnn1Pu8vHk2K}*+yubGG!tKo8P~z&tZ;_x*a$Nd zDm#H_p5<}UB4*y##X+GV?z)Yj(87PEkV;3_>lmK=T^Z6hfc2kLM-hf7i~x1app121 zDSyJzYnCM`#vHbI= zT{xW!N%-&3*ETJsuyzMiZPkaHkPxg}Ij&Kg6GKglc~ZCXG1wbk$NO7slitw@VOnFG zXgY@lEuwmdJ*zEhV)dOoSyLW?CASR_-cMapjw%V5%&T_cLjb~9rO@Xm3Pz&O2J)U^ zSua*>T>ZfneOckaa*x#Ta#=yhwWvFeYBqV2bga#nPAG>?2}g@l z{yS;Q(Yh;5%So>$bVndr2n*d%ZsK_}%2&%u6Pz-(2^BxBy%3I{5HCGtX8EfqU0)uj zluavn<)ZR>E?gc~+)<3|CF{t}l>dXtZom)!@n@jKZ>}i6BPmU+}hMGgc{0@J`ufKZ9C- z*-^ zxa$Ze*>-Pur(E0{ymlOn6M-=-aWok6NYm9oVgY*BeS|W|UFCGYl10WvHQ{~U zFaLtXgRDDV1JuZfcrvX1JIsds{K@j+fbia)u$Fcq-pEa9f@{KAJ39yp1n>_{%B}HC>}vPZNxl2FYm6>olWd-TF;U*=UJZeb)T1e=`Z#XbL8sC8j+0pEU43^|pKZBeogVFr#bk(<)G|5X1{ z>HKB%)AC;>C5yOU0gk(*ubrZ>{{Lr*ty5fB#_I|GlmgwAJWh3=yy2FDL@}FbDfuxx z?#~P4iVj$3pH@ABBj_%O)E=vN`pb)I3;7d3qCWO}SLiKm3?5z_^bDZ5 zR8Iweziq{2F!ELI)p6=&nZ@<4SWaNS1`0=yH*C%xrgucXJq&?i2o3qgfQpN55{`Bn zBGgU2SBe`kA+o~Ex(nvLrthBO%A!KPwmfjxeU<2+0*?w4>DF*m)>hO5m98YTDDh)S zJ1fd*xH~MpqC;35#jgKq4ZY5BVUcJ5(}gz+t3V1H-Sw&?b-?gj|H*0^z~X;{F&Z$S z?<#36kYJS`4m`|{M^sFg-E`@-LZNl{g9WhOP}aTk4fv3L)Ii0jO{nAji&0LwjNlJazBdfRVL5bc!r5<_n+a46^H7Ooc ztIn9qq*@a#_ENUCnV;hfGbmv_TR^)(1%By_^ADOhYU03Lv;TBnh zx8IO;6|~a{obuerivoo$js`f5Cys&CcWAToW|<#V1j@Q^xxT1kfxNfUFO5!sP&3^p z7@KKnj^uHneS5%PBCZqk5g_@9)N>W>735EGk!)F3z#N=XE+#jvwg)Wpx_kJ0$YUQ* zD8hy68zn5Zp{a9XvntG?0G~lX8|Mh}8hFy5 z704V6s&(Yy#T5pu-=DeP`7X0%%Sc)D=_Oxr$ly{4<+uG|yj(J;Ui{Nn!5TOFt~72}Q+2Zv3ualhT-Ve^7zr=Pw5|DUHa#eOZrQPQ>xXXdVHPU%B7!6{SL{ z(Nfm^#{8aC{7lH`>?K5xCJ#QN*A6-gR-2 zLRf56FAZ&npIZccbi2E6tK<-s^P2&dH@()yXdQ2oK!+pk+@!ITHTFY`^Bn9RjqE#2 zqEgX#sFxSk z=k9z}h{wLRDXl2zEZIGz_M6R8;IV?E@)-VnSRAmFunc1-@NZ0k%A?uY=v}cae7oBO z7J2v&u{#{0N|&=q!%&ZzOM7@Q^W|9$S>zAB&aw2@+tpzQ2i~16hty?zy2DcwK{9WV zK7J(obJcvL2EOOshz}Zk_cKtao`piUntdmr#Tf4Fu07EtMvWNLV=oIVEU*+))$e!i z(o8UK-sgM&&)*aF-syAh%$eUQGxmvxk`^qr=f4-tQ1n#3f8>*iA_^RTbs0tyPER~? z@e>jfW_#2mUx+{|aF0^JJ#BRxm2*U+RHqC8?v)Q3;6cNx4?ZA^KVz|^RW z24z#?ht#;8uQIz&YNL!$x{0AYwO4AZj1bcEl|O*4S&c|lB%r)%sLJ{?-QFMESa-a- zu6QUBKTuTH`%h&pL|LNRm#v)nWF-yGhg9M>m^J@bWuMLwZn>U3VKEFcB`m(mXH8TG zkk=o8bJ}&QpR%A=mP=uro3jhK%0^YbX1k8(dBXh|Y90Su!MXGh5a)Z|-qKE54%E16 zvHB65US09`*#3??o!O`s{iah%VWJwLib#wtZ$IK4A*@ebDNQas?C*u+%bCb89eUD{ z)(5&4k4iZ&=RN|4g)b7m8y@$;lY>f8-56(*I&4-mbDxSYpcQ|SZeKDGQSs?3YHjw< zeE+dC;njEM(v#H+p(P7_wx^u;I;Bp`Xkia_0nrh`F4WPfUKtVWMTNwv)};DoG-u;R zR;-!rQk5A9&v(0Rc_FPKq&BM}q^cuRyJj>c=Zo?b5%?-_dtv2Q0cE|KG)I3MmTJ5A z4U4<+F&JsiGQp zNgOt}U?In_AjUYGd-Cm%pUkIeCCv~`>qjijG(L8EKd%TO*0H-m*j`V zv-pVt9V_mwg}(8AuZNU30_8v{^f5I%lpo(_ehqsSMK`=()3+ucE1KbAe&cz)`s~Fj zPbYS-fiKKH{e0Wvl!q&VuA&?&(aXSKA2I36<)b#|W&@quy{H;%A2CQ50=eB(34iK6y+spZ<~e0{R&=7l>z^GJt?3j%n#_^JW*4@ir8%513STz&a?2pO z1cnk?*iF!ym~p*Y8~Fs08Xl^zZ%$)L+x&)bd;n6N{)A28YMVdl@-{s{9J zMO(^2FDh~{CCpAU=)o5G;d8q3p5(_@B5Fiwe?5xh*T~zns$z#m3<%4TCIW4x*H%QDIQkj9| zh!5y~!OOH`!$r~T5+REa42M*SpY3WE9R=Jk*TcNbMcpsCRR#>c4zfW~l3=R&1_mTeA{BH_oC^&_mo@h=H zgbsY*Wb+A({9yew^JKbE&p`HN0-mZ2jXAYJ(WqxzM5`6rcw`Et;p!e zl1dJT@w6G{34*A8jeEY+^_EaYv@btKBGiV1dN{v0T2q8wj$Ex0^KkiDuv?4|N&55g z`HTc~YfWS6-+B15r0M3ztZqmEiQw5Uhm-nkPDn z>Iu+(_|ImM-}x)~n|sY)J5ivPwanJ`aWtgKLs5_r!y2-dhs|r)*!Rpjp%?2^Gphqj z?3eW#i#TlFO}0MOG-^G+c*J~26#B51@dzu6Vd+Lfo{PP>v&YPDv&e7FwV36&8HnPC z=BY67Nm%7uUCIJnZFeKBBW|obXP(C@vT|gt2PT-95cuAwdv;Nuz5&*5J;og zr6PR5B-)7rcwB~gi!-cbxna6x?{=rolD_afY zYfP56J=(|YAzg-2rrn}?w)CyJwn`YnY>Nz)v%CPp!eG0wfJXLnbx_aSn2-V6mYwWm zAQl^sQu96HhPn9n#(&;Qn0V?d6|is_F@`TQ%rL~Dl{*n z;3Y{OFvkaP^l(uxTIZF4&?Q?)t*f=O7leR%G|<2Eq^IUL@JZuVzw+Ilo=@c`{xT1d z&x8fR^((%lE@dl1{Jx6;Jn8qLYh}gd9$*wU^99+|t&TnXu5(tnpcp|@FR!c^#ZIh= zdsbtX@0!(oz=&2XvP@6!ZQo| z`)D>WG^+)RIT+y1metIPqLd3+gnK=2mRLJW$@UV1iM?Ws9tk ztXTqX3k}J_L3mwi-HZviE0X?Ry{cKpc#hUb2nyVHwT7m*J>&JW?%-~%sFRoFecOj+ zHpptBQj-xfQj~$iAMqPuS*>Y$apmA3;>q`9(VW1)%e>{tJpi1_!I(F&lC7_rGt!B5_Ov>ur|t4UEK@c8J|l33oMTM;d31q9K9xmmSAaZz;pEx@9>!Q<#I*b`F9_ zuVStl=vYn=k|tNJEk*r4f4pkaIKUx#hSe=CeG6QpiFc)75)0-O8f<7E{SF;(QhP04b_ zy1c8Ja`nMYFY+xjvSiMKe$Rf^`sakkXVHYF+9&i?$MC9%1ugF^a)(zCD|}ktkFX0! zOb+VZ+}2?Lg8;ki{*}uC>WVWI?B}qAJrn^9(Ny4OIhq5}(g2U7_%G^% z{N&M5g)*!PxY|MeE<12ex1LIC06)zcayj)0ai{S8wE-t*1uBKve9rq>A%ctgy|+ha z%#uxMF82uKh7YoOU}O%Un8WO1D^+(X`JN~rg*f%8xw6wsPN3BlURz}OZ+uvXpO>-# z$BTO(&f;LBhiHHsMZs=L^AZdl7~)`tXcn`6r?Vtc{Q;o)THW{n%h};_ZQTf52$U{l zDV3@W#C$j{JC=m-@XJ}ZM3wp|+V>HQO7-l8D?QJ46sd+q;KAc;Wqd!#;;?RhsfJHj zY%|YpJpX#uVwIRNpN;>Whq0~SW_5Q}8&jueK>vNxUI7dIK8s@YsHNQ=8S~i5Z7aj* z(Gr#V)b5ascouu=P5Hqll{)?Ht{HP#X6)23YE?La)#_vTcapI3v23{-!FR3~;?tlG zzrj4-So)ZTAX3-%8#`-?7ane-zrtuCap#56ZNC?I=F=>9k#5^U{~NIDiEStHv;}Q_ zb z$_6uXm*J}xqYZD);)b+L^4T-A$ZJhJO6lo>E5$gt}}E_BR}7F-3`DXKq9 zb;&5ZU`ke8<`H_ z8zwY(d$gj!o%GWn7e}KG#iN7zGLQPLCt|0CglEr?=|c?r7kr)~YL`fjsG0{M$$+7J z$p_u&_K7_$Y&pu>u!zU}l#Uoqs3DBU9re!;^m|Uipe5057E9aTyS@Dm5?OJKRvFp&|xa|?aj3%1QWB@`^$zIlEAjD&W;z= zKS^t{d)A~d2zJD&q9v7cBMqt=Wr|?86Fh@>a6juWV&69=k7lh|G>R zs-|Yy$LO+^t;AuIn8&BtzAUqY8)C};G_6XO{=CJW>`tQK%;&t59jOpp`2GXgIt5*s zVn?z#M(VD>?;Oc)D^lEn^|HuDPuB?i^oQ9^L|^o@5KKOVTJ{&uz9qP`@rA(+SlYboF_a+DQSjh5 z&t(6gAXTjFRV0@`nqJ-#_+Ou8*ANtNBtK=x#<27_u@eun53AI9YeFRi47{A(0J?pc z$rI;8CiIHR71>8~n!}I88gp4x=hH&Jm6nHaoPYbCmxu6EGJ4-9@D{&hPZ6;*u9QUw z+R=M^jiZn8nSG3@93Ho7@NO*SGsk!^kCBfq!;x{&lI?1_oRJ(VU_=5yIm1-A$plvB zVT{_y(Z+#Ty9)G=v$fEPB7pNC7Q1nBFfi>uQYT8#j8=K_E1r12^rU1>oK%;mJ;|Pc zLP{yXGgKY-8}TN%{$W;+vJSqJn>`tAzWDtI`Evgl`d6QKv}Rwzs`lF}G9g^I3p@O4 z_GpB>c_f1^SbZqwX4TApz9Mr-y9QKa=+kKrX}Fugm=U4Of5{%grzmswqE^H_t+uIU z8Ev+3dsC~O3bK9tp`LJv2_!!+W*H9*5oZi=cL zt6qFkXwE*Bs8RlVCePM=D>Gq$BXU+c2|#Vypdw-Kp z5W7Fw<1lOAKIf{SVaXqLm9H`xMh;lZ|1ps?I&cqrTu?C+v-!pjIf>46kH>l@ycilP za}{wuzVBfToY_0-Yn@o)*K9Kn>6zoLQow)!4sFUMA^i3JIfq11Q&Wn~*(8uV{YFx? z2lI~x0A1(n8oO^6i6@6XG5>`xq4$t z5IchZyfx=rs5P#;)=o)Ur(#JPb5tzrx@#~?>Jj70UIg`ZVPkJ4_0sS2Q!#J1AF;mQ zN@^2=Va5Sn`*j9LqR)B@SfGgNP|H;NrON;O7NuBbdcaltBIBdfa)Z8 z(rUC)FHnut6I3nr0BxTjL1xsnmAZkpmb!pON$~&GL`pHBEv1g2Eu;>h5fc1tHO(b> z*lNNhIR0vyNovrhQhU%QQajMbQd`i5QX9|)5?p>Y^(A;pX+kBq`D#KW_}^-RB>3NI z0;O=!04V_uxEenRIz5fA)ELx9Y6MzWY6$8j!Sz;CM}q6ErnVFcT1%qIa+88VYe+O@ zP7+O-gM=wl7fUo{i#hB#G;eSLbe;s1MiVcs0G%r>2c0b~1)U`=2AwIrNw23%3qhwz z3qYqz^Fb#|Z-7pe;z8piV3L}#(k#$X(oE3TrRk`wNb&;BmB1Nli{uHKBY`v2*^)bG zmQ)MWEWvkI{Y0t>`dA|I?vdmQ`cMMjs2@nq@TgYbm%u*idlJ}3eODs(S;k4`{8=LU zqvQbkf9UdV_a=^a5YRaX2VN^RXR<(X6E=}M$}7K}ChVgG4`*&?T4H_OM$N&XG}@w)pvy~TQOD~By_|r>U(M;q z3Y)r55j9~_dXA(ZJ=|6nb=^-+nFEpS?V?T+&nc2scW@YPv!v=9{i&P;e)@FIBLSA& z`_JYCDims36rsqIldTn4(v6&O+C}S8ld!sdk%L&?{=N!+`?H) zB3(}cQ7zJ^Y9b24V7;0%O^9akGeYH_&p_w{1lIqwTXC*JwzoQDeX)m}~FVG!?r zFK3K=MZ!CT0S9p(YYrTJ(9t2-3CHg~%voZXuRn|T*9~PkmJJ~!0%OyB@kfWbEOAzc z*SLRf&P;(^w3FqTVcSb`deGX~Zks3pZQjd-uj`c+D{9(E*Y@|6LwVGL`)wLlY1DL( z4Sc9`Vm}q<>=e55IVCyWm83k9gMS3_Z-39pb|k%xJRN}yzfVvEdR!CoAYdws9q-zh z)%tux7>k+fp<^E|4RGh5y~w#I*xkJ0N&)SP!jeoC4P$3d|E@!55D(l#ojqY1>$i9% zfLmJog1A}7Zf zsV~1!!}3fJ2J&-mmLD7y(7S9T-lv%*a$GVVs ztYC?*mMu~}OK*Xqy~Eb)#n38convl~7Q3?adyAE9WNS+TYvKNj3c(3oRM0P2f+R0X z6G1Vgx{8pm7W<%+r3Q})wipD3T`hv%RCag||F*tmsHhlLHUFL(xgF%WuR z%TgE3;H0|J1oAn+H!nZyNuO-&>SYq#Ddj*ua{j3T+dSOzmZ%v7Bn*oB9fp|%?X}i_ zXS&PM=hyN~xj(TMkGu2bV|bEo{!qoYPqer?vK#%gC$Nz7iqY(C|F5Rm!!>Azu$%Qw z^Zv)|x11?7^**^_9F5&CFA+od!a0_WkYI=ELp)$>P^BS9Y48FG;7H`bZ&pRc}-emkp$>CLRKCPq4ZuN&s}P{B?!~_ z`Q?_69Tf<73~Q6raJjVa1pTI~otR;%CCXmxud6Lngqdtm$=(oLpkvwZq8Yt*j5I@L zWh_1AJ=nexqH}pO8DDCF=K;0qZK1a8I@O$x!ov}*B1F@R7jCk+tAtrnvgJ9B0Atv^ z&2Qm+KE3}8m@?x1slr*_P#O-oq~sR8rHQDN=omu9mQSC)owBs(Wi_vI@cmr~^>0sc-6d8X#Q#sD=Pzv{)tzH8BO#g89oO3T^yWf#Ca zS1j!i!OxAg{ND10QUc_*wrt$4SW?*eOE(YkKYp+bL7gl3z@IG79YraD54=O4JZAC& zi7E&t``kYL^VhWJz|J6%{1F<+=iaeA$A|p6%C%0r1+5ibN$!*XM*{BxE-a2oz4%h=hpZT zim-8B_BFX??rMQBy^Z#*u1Z1~l||&WPvvMxt=W`@SH#Lt7j=eO(S z!gww5vTp-!uAd7j13+FHiIDg%G`W3TG;7w4<$(OQ+7HJ2pIcxBhkhPr$oU%cYn+>1 zL$g+ny{ix$UgtL_=PnlXzei?pU9;RTl%i%m3;jIz3!0Hg7BdDe-Z|RbL;U`hf_{#C z`O(~Lfx{=izTNj!o!f%KV5YICyt?J}Z%=aP?(__6i2a#Lvo*<=*J7TU-03RK=ABCJ z#uGKU?xKrkW71F#%<%w&SX!QV9Xh;;+u{rD7jtWAjXo*G0;jeFss4aEvdd=Boa=e*p?g`p5HO^79=pKd;4I#^ern7HaeHlXF{(1YTC@si;Yo zrsZxG1cVc5>KV)vC+B*~OGg*G2luSpRSIwVpb;S#c8rsAhte{ZniRn6vc!&F!DZ8> zU+c!bh>5UV1ymL?PSmiMTeF!3bo%2V_3RuODv#i?4GKHTdVUHXQt^Niq;SQe+~0Oid|&3)*ic{kaW`_cC)^91^h zJ>A{o1g?9mzY63 zbQC;Dll>Ipn!hxFy`&KH z&w`QznS*HeQ)78z+{p~#&9aXIoP-n8vfOv<19>SI0bv2dm2>@6XE*lN<=hS~nqzBv zaNu^baP{h9E{d9uUT!y-?@I2^H3((HPPpt69M31z>&)(ym|c}8H@4^X*}QWS@Njx~ zc3bT+E}Hbs6L_e?0c;ad+n$;)Uw(;Hv7f4Dvyh*1-Q}gkv-zW;EaZpW+br?c3E1g; zm$nMlqARAb=i8Q>Y4~;Y^E?};U+Kc#zKolSP4HoECz;dwmu<55!P{Z9#$coPM^%)( z1>itfHRs+{2#xrhoLnyj;eHr|En)viPfd$s@w4_FrU@Dg4gWt{bJ{-2CAqBy3K@Bj zr1Y`@LEqcDXbf8#a6pCdk``mCtst7kpI3ORG=N1k@{Nwzg3HH%C+!-Vk7aH5pZ5U& zb!jk&EL|7tCpH_XZ#UpwmeliEIDpf#*ie05 z<#uQ5KK}yR&TzM~xRi>#_sZf@(lW=dD)UY|+HptNIm*9#3f$_NH(nGX_&~S3t8&~) z_^fsRIDp>>$a50e?|K#NI(+irv@o-%iCq?vubuPCdreRv3gsrb>s3;7q<*0QzLFl0 zhs&<8hg{P1C22B%{S=kgmuL2wp9ri3cPH)$gGH@dOf>0}ey+BXu)Hn;*-yVMFJ@GU z9=r3W`X+fhC_d#@QY6VOJ%h`dUT&luaHV-(AQ@C|C+t8@w;k!af4}$T#9g=|GLNeW z%!xbzz&9W-RF*bB*Q@j9AeQA^b>5o_vZ3C>#vcg@;M>%BBSaST=Bg%pA|r5FWk|BJ zZAx6ElYQ%r$ukfvbG~!l4VYK)?cMVbn^nW-_RbqFN1;R^7<`68idgJZ1FphU& zu^ETp)Y|3!UL+BIyRjbcOd`6>eR!JSqPeviW|n2X%W_r^Tpz4du!yI&THH7#ueTdw z@MKLR@$_|8s2-x`Neg1TioDZXd66n$C-KYk9ttj+pOOPO0GWgGEK!B)RhsWn<nlcmm5BXA1@%JX3!2V=MJj5T@vX{_fpTGm`>yn` zhC4lPn@aO|byp4}{LytVQ|Wm{e87i!w-m7HjUVqRKj}r=Q`Wk<9M<>gd2=1B=oGY* zc+H`CN+AJ2xpt2MK)H680T8)1$pCO%yTJfhT)WZ$SX{fr09ai6rU9_HcD@0yxOT1q zu()=XAslqN0jRikiUFv&cCw)f=p+NMac#5#K(bb60C=p`8qg4}#sKVCt2O{T*0whQ zJJz-}D1d2eTN^~sCO+QxhtXc!0lt!=;;f!61cvtdj8CTIu;5)SPX zFmP=Up9dPq0TXKjI52RnF9!~*_2#od>u})V+S+_3s3)HR>cN4EYishUz_hh4d@_D0 z`2@CNN;@B-~^fXYDI(@-0V4%N0=IDp!1V=yqZ*^Y|4rLdC@EWu7NR*Z8&SQ~l zI`^Uvc`^lY8N|lc2=k;!!?b$nYu9POLMAYGY|QSlgy!~T7ktb$`3atvEf6Y-D4m0` zv?iX-gOOb6>AabO(4UV#n|A=8uY3z@d(`qjtw?$QyG24?kp}R%>+*_Z!630gX{9aE zXdZhz&rLoU9C>;5^OnBN`&tR4_Qp?nEn(h}o)tqt1B?}K=QU6eJiE)@5iBVEDMp2+ zc#8+1Wk@;6dFUS=LteQ*#<`xTu}P2fb~qE#dX$Y9tv}IX3sdUy^`4f#Bp1!oO|3aV z+?^CMM9yE2!mMjbsI@oWQsP>=-*mx$Z!fLM#@;*QD@v;)mE_e@3PYLugT=wrih2U? z@kibWM`0M>|19rg5g`(TQ}@Wr-dV!65%)8*ZV-FX-NT#3O&{#RVrDx-3nExQ0*E_S zv_?3Rf%-YLO>%~5tnm3gHRm0j)sTf6a zfxNe4bCfI5@yzRah!Nr8W^Kd2scjuAA~;}FUF!w~!MbHaf6X9kcOCVDrb~4(!%tc#c<2ViwHHDo_zFJw@OqJGk^Xq&fL4d&(bxda- zXLmQIiG{bznkM_?l0~gEd(gF6XmYIU%Wp#Y=_XB|NwOc$1Z`bQNzw{r)gCbggB&eo5zx(Umw*D??e9V&urJYuN3i9l zBc3d+bzn1lOv44%{YpMt;Q$L^0uq*OwXTvE9Z9LB-Gd>RZr*>Xfu|=}CkQGI82H0( z)X>VJdW%{gX;QWt2f}}8X|AJ^16lq+KD631i&{UaU!CtEHv{}dpna^)?8aW}NFMur z!*oH~X{A^5UV6ncr}^)utNtMVp7K?(F?+0wSY$7i7dy+Wb45O%w@9^qi)=uOWyOQN z#J^?Z$Tmn2`9hw)*Lnb{7m$=phZU;dl5%gXGrRDP)sNl3qij-9Q4s%XzqOwTS1~HP zytR$_*n`%t=p1Z4We_odfBK&F1Rg9Zhi{n2WvhaZJBEnE#7{7{st7r`*SU?7FQy|9 zeYzD1-z6_fTp^1i&q*5s$fPu0Pa$zOv-{J-N3#nNjb>0mCep-(@x)WssY)dW#tUsk zU_W~)4Au2_a?m#2tl>+6Ut7-$Ds7YGfqV(eyzo}AToa{{L~TRqjI{ta<*i`0OV;Ts zZTQ*{K;dzhtp`Ox%hMiMn?c5B4-{-0gA#AsFIM;%C%WlbQlo8_l-a9Yc;q$fH;$sV z1%WrI^w?bfcr%QA6>u4LVUZ= z7`vIiB7k4Wv38Wls`cM$7PS%5ZL0=2EZIEaDutKQ-g{!jvC}~-Uo5L(__>1f$JQkZ z8hDbpF%f-K+BRE;8w7qJ$2vw7wXLKQ>ko2!IZvcmOr9^m_fMd45{vo^dlQxFqHVXfn*jhcb^=<2(|@y068ZUJ>rDmt zEBQC;Jq5m=dC#mFj&|S|!7<>W^~{Q!M$?+)dos5=`HLk*zDW>Z6@4ZlnBFBp#c*2X z&RV{(wqS49$PZv%&pHP4hfeud1q5aqzbL5MWXFY?|hyAH{z8Gv1e9bI+gZqHv=;Fzt}rUL{Wq zNgOp;qAgLSzsLBm4+Rmu3)+;J3&m5fp4fq~`e&GoQl?n6sF0mPP zK8B<4?{EynY0{3m^kZ?u*3@Bh8gI}^Vfh`LVM*GtdHw}(VOPCJ&S26DLX#MoAL>fc zcy`E#YBo-nzgwm4mE6VvmAWqf9O{bt>a~#-iGv(*LukS>eN6r&GCSR7KkFmceqz^t z73mrh7S;73B_78fb0efUamH?`w+SCW-)cjG;{C5nT*}!VDKU7 zjlLXunk8xnNTc(AQqt8!8(4CEFZppSJ3lK}!&gnn2hibP-J2=-d4hn$*|hwTO1g7M zR`|$y8}J%)^7}ZFN#Z6l8;~Em@D=m&M=8ksu(B2iUJLUbY2iQ|-{bhMdbVHAJ#?#_ zVckPfl@cZu81d5c_F{#VM9M= zw?E8x*00I`MFA``#je=ECGp?6Xh-e!GXP>Wu+RbdfjseKek9Pk1NlE z?*}c8n%Z$tV&_o75YoXOO{!^njIisSZo_t^cWbO~{+@y#*_S_3&~M3C@Ps}2z~I7o zLRx+Tcs5RdD1Vcp5iQ{If`U5bshzk^WoRfXA&*0kQne*iFHFbpWrVM!k*UcPU&hIe zu|I56(Mu@KA3UV?g>$4!7wmW|3Htvi5BSa9DefvMJ%5}aG~sb4^H(VdR^4F#jH^^X zhK>5T0HIlH1q^q^q2D27AkNQPhH$;F5f&a*G1ceT{bpatUKgurvcUvsiJ@}dM+to0 zc~nQh=`m7^SGKCKH2*G(-`TV!NfiRVm8qy=Cg~0zQ5^_7&{YZT!Oi?ra-q1==B4sa zDaZ`;1N%o&-t>wxi7n?VwFES<1HW3wQM1;)TO{A})Y4RegT*rhaNo`5P{viTxJgB3ac9W^g3|@=B51zeTm39FNUBoeDV`bUQ-Zo6a^Q;^LiTigb+VB|om6UySZCHGV zkD9RA?=Ss;Iy9D~bx(HAvEZf<$#6x0%~iW}?{ouTWuskKEgKio_|F!UT7rHko^Jp> zc#hA)8uJ7L@!;vRFe$ngjBwGMK^;B#t5w_EM73pxBLOF+Bew% zeEX~nxtDVRb#6M&PXvIit{N^AOtk~e5q9~>!C~tBqo;I^_jsu(@-nxW-EYt+klof5 zV3=+m>mh2_@j=NS+oNMNrp`7aembyw$=K>g@RjA#eN6m?wqP4BfMP2{rd9TAze zK<}sIGe7n0p-Q_J9fF4S<;yKlap$s#ymEY9xmVxGYj-fg@Y*eW(Aj)M0^WYz_q7U6 zD(jbg9~A08OWsRx`$y>9~;$%XZ9<=rI%XVQhR!w%$}?m>N#~QajH$+1XncTR37)&u0eA3_SNJa zib|n?^z}^P#Cm)XjF@A6_SSc;;KH5Bon?2Ef9Bj(ZBG8j+=4)XtU$S}H!No*hT6@v zq3Dw*8QL?C`33nZZ3?xGpNveM?8q=6yG3m(KN&EP?onQhX~OW3`j&>LWtDL|MO!GP zz<2j@v)Lc(3*J)VxPR!SkCw!l#e&Umna=@cHWv!r#=PvM&8AD-mZ(leP3cB%M_7uD=D4-ZgwQDe{EE(>C zi}pa0+5o*u8pY<3EAJ&Ad~dE!k}vsKNfDLo6|6v@iFXSwiQ0E*nLJgt1`Ir0uth}| zejT%GKFW%(h-m&bPX7n>=>^4P(F!vGl3bByp}YVg0H4{V9sluE!8#bTvO=%^(AU#T zUd#(-3qlMZk6#KU6e}Al#_j-_i}tCI2hQuS4T3lE5Ss_>p3ayZT$bv^Jnk&J&2HqW zUHP*M1u0HKSDyT3feIZywsW|l3yrp{yiNbI09HX)3OZsvc^^al5kJuFgaPL*iXJYb zeg$6_Omv}piJ(3rNe(%F;r)LqI3Zifrr1L(9RIT5v8X*R-7Y{Vl^!tUDR5Jek*i(% zSCJIEy!23t{f=g>t0ENFEzexP%UUJl*5l-tr)aN)LaD21n4D zx0|oZwWfnO$D!ul0fv6uvV+z{yVqiw z!5*Ou$HIfO9{K-p5m*v0Oe#cdSKPU~ncTtQ>VCiOoh7*Fp%4qa>2@>R?O9j{Ms6*G zIwGK>gASs}C=rP5S=_;YJ}F+6SPwM%g3YE%e+ulQeX*Ff;pJL4(cBHY?r_#RW% zE1W9~(4XHD#FCyD%yZFRcxQ?MN~+T|E&d$OW?@nEikg9s<_ubXk+^jE--Bu!c8R$I zsMOWuJO19w16M$wFpKSZC!NKAar-9S=@(2b`W8HViAQZ2{GlU@UGF|b)Lv$ulj<~m zIro=NWYv3$bnkG`d|r^{qWxk|Kf^#;bHMgxO=KQL{&eGq_A~tZk|+0Sa~qQR*;XYq zIxSGq6>9g$|3&Lw8ZWS{HyNONz?;iASkzvn(z;cS{EmvSG$ZK_4wbknzzcaj}WdhyZ5Hv-QU~X@ERSo zu*sGe4Q@(TX>a50gG$T4H-yU4Nz&dSY9CU$rPN#QSjOa9o`0y&3nqXYasz438kNr( zzVb>o8B^Kup;fp+wsA-=oG6=YBVa;aU76>v(H-F-_KyzNe~Q{i(kF#j$Vc)y8HGDU z{e?nUH=QXwFDnLcyj|++&*yyZ(hcJ{=V(KguDm>+W%e29O<;yUzjwZ{K!82>jf;i2 z@^dt;i7=@1=Y^LFuR952`MGO_-dMi!HU$}g>hB~Kfc#QH>Ju%LJ-`<_h25qwdky*1 zD}~#Il%%;e_`t-sisUaHI*?j?;HtOkVaM)QuO`d#>;phKe5#7)eqXp;X@~T2RFex0 z5}03B;bWHG(y0q8cvR@A*i_E|3Hokf5ZEQaq36YH1}>Q~(^Bh;_D?MA3ybz6)>K{pzQfUYw_<*Hj_gvwR7+K3~gZk4e= z=t?70uDTV*zM#vDy+D^3dxE}hgnCjp!U*-GZkRCwbg(fTbfB>r=l~=1lDhuJCQwJ~ z`WYL8_A){-sq12dhnKFi5$aT3v=NF_U3(*Rr@D5=dZ4Y1KA^3PbwQ(yz`%8pM(9p; zEsdU_EsW5h>Y5v&LDe-ex`8${g7{C zbiT1G=o`i^p!19|pmU8KL1!AHK@+AKb@qZ%&g4SL$fG4z{8)8Av8wf@)7{CqMPYiuPPZ@fHery0wXiplz6WVk` z56}|^G*0`W0nO4LO)zxEe~uW?F707MC(!o{)Veo~l=P6H18AB7E&ac=q5x~)7R}2J z_&*fX`DX?46OaKjf1XuZc-)axSF($ZKmX+SLiiCN7}6H|#t`CSgYoT!y0#B#0Y1Uf zUKCCcwSS}xn%gL&ne7K>(je`U_i>J-;~+HtwPUVfI>mYb^5;(vN6JU9-=&(iZqB4u z+DGR&`OO$eA$4sX#X8z&)JD<4%|S4Lr1%?VbI*FV_XHQ6!V%ZgR#4NfsoRL{54XwS2yEETXG(dl}n|vl7?_xC}t z6mVzx?myRHa|YN#M8g7}G{6=piiWo+M8$NKuGZQKhBtZ8Alq?_$`bzd2wM$Q4vo?p zGKRDl$50$pt8aKBfZ9k~7k2e^TcFYa^%T;SS4n9QDd9cuV77gv4a(pg7k74jq|H@7 z+BQvTSWb8-fM0(eIn9sAhJO zdQ8sbN#dH$e{+ygq>jlOHxjR*uS(}DZLlFai;j)YKMGexoHbeet%x1O?ZpVo&~k!& ztQkOenl{1}SMzGk1*GH2KAPLgjm=rmP|a-2R);A{4&^)TT498$>KG}i{JGa|8*V4l z1xiP4X4yjk%f$fh&y^q85>=!WdWX~${%qD6+gz%4IfwFZ4swJ_pV+Pl3OE2D$BUu< z94Vm84jJs#hLn?GEcUcbRtWl3kpvC4Zv^rqkS__ZHp?^Iad99XE~zNa5fjsBZ4Dz- zLWltm#;ICI;U(KKef$;$i|IL}4^;u}`~_QoSs8THzVO6fu?34NUDFM{jWyZDe$heH zi{7+PHpV~p;7aoo?47%|MCw;3k~k*`M_?z2yO4%$hqxHCYsIe&QNQJzaYGSy074K; za7w@eGNh|Lp?&?zyyu#2Y{B~%wK-L@f~JvpIWED(+HMqBzk$czqNwX-=MGr%?ot(fDb&ljQPk2=)V0wo zit3Zoih;)$Vx?$)AI1`X z+0=@_k2);Tzi1gEwe@!9OI(UJs6?HP4+tw-BBT_y^qZn~u z{kV~A=UEudHZ6i-Nz0;zq-{&G?>rS_NbDV>k1UF&up0+xMTU{W>qWz8Y`d;%V+^H* zSY9xZWe{r=g^3B_1yMzHu#R+NC!+#B=l6RTosiG`c|5*G$Bpt9wvZ=X;hzFQ37%V@ zB`orp3;%bY5d9=?1xxC)5F7v96>e<9+e6({4kXX_pg3PQtCU0@-8%$b<>jfvsw;2^ z@sTH-aWb2`h=dWo&N6Mu3bwp+O@zWLuY%p^Su{Zby;pKY{|41WrG2)JH-XA} zx^Yi0=%NlH^kqma zI0{X9%=n^GM^b2QremoeA2Yt_T_9pLMcp7CvbM+@aqVKF_u$Ca{fAc6KA0V3>uRyc zp5GgpyK5^aMDYuA6j;lmd0zZ}_vjDg`3Yi)C#JWwgCOxmKMLXeUVKroqe=(48Lsq* zPN-$)zdzZM#op2-GLN>Mzovx>y7#)#ZP{E_w4a<@yWx7e_gkR6>psJH{JJ9SA*laa zMN2e)YYAS2ZLqsoEGvo=NPo49wotiGgJmJ$wH@BZ<`jcGkoqae%kK~=vFHyM3huxN zSd>#gmfsAQwiLk*q9wndR1|~{f24kA(RsKcT-aH3(FMAfo6%nIcspA(hS+)R#sx;` zUQ&pi{TNEWBkD#o&-}DtYV|_;ULsgb%)OSdj4ArfzFy!PS5x@B*J<%Yz_uerGuewq z_ioq+?od%7xf>u}!*xGDuws$jF)Nat=n;X9{z%bn3emoecC>0=S1s#UQ87h@Kv~Bz z$JLY-!P8C@WhhB4@iv3&O_fBrH)luKc=mj|)tRddMZN<35kidMd3%@$dCXAaLD?T+ z2kj<)Ebd~F-bFWcjlu}19_seXJ>&wRAldy{(K`zAP1r8?OHN56G@NW;5yxV$ZWkLZ z7LTE4J}m8F(IyshwdkR!o57Q_i@3l(yrr$9-|qu6+Rt_Oxc^(boaY0dAp$qdg%!Mm+Y0>*wxNJo(6o*2NZ{bG|w+mcfT(nmp?+JX0 zZI;MS-*u$m60#yd{@n^#`^k=-*yI*NeOSENr3OFrXVG>MVa3Y}pCt&5QpPWV`>L%- zwX-;0=#eq6I2qi#h|N1*>jppWJh-JJ?WebWrqLL0rM%%&550kDBepr*~|CT(B&&9 z$U34OyQ};#0$}j&qbxC~IKg?sES&WmbW52K8-P!!Lrq_5N&|M^+gZWK1Qauc0tkBw zVfvLda2H+T=9Wf){dziB+Fx)~y7d(+00!auc8`{kCh=Vs=k(e^8ojUhJ9AL5?5xM!LOg>0ndBrTnT!oACB@dS zOGVE8EOLANH!Nh-xIq5l;^Iw$w4k_^Guct=$rJ+L%(CKX5PkGpw8oMA-16cW2o^h8 z)CUD#Jo4mtEGHyqvA8dqL>-A-RV)HNjapOOUPnZq2W0teMcqExl!?m9F-ngXVeOQyAoYd_l4H2wf5Kgy< zGMu4>Xby{C+Bc42^6pl?AoLm14wc7q_7q1grW3W8cOBFR_fyzAuiVr1avo3Npw> zq{ijN4cNJh#R&L0Wz3%}KE3!EbKSDNIkmhVT@dcd@AKlda)^yh?7^Yp{)l%}e5oS! z3YPh(rJHo7c&;E!;_+vT8!HH*m0cUK!X_2BMl7S^8lpYfrQ)eFE(KTgv!DC%wU>)O z7nQ)F*4w|~6F(IXh$E64;pBVsE}a3#_X&0yvUUyRvs2@1Pbk0`&Pu7Uto& zw1)nN;$|%VUU4-4t)O_9AR6Z%*={RVh{gpxxwQB%v}56s?Z4B5H+k~2;<=*!cCiAh zZ^?T~ql~!7YYdtk%@oR#ACyLz4clv?k>5vf!T{!Rqj*6|OdB7$r7u<6iT~+TvIEsF z=G$FL&Z4>{e1Ka?8+02O3>*s%H1T6Gf9!GLA9$AhhQ2SOr*N+f=kZbU1Ihr{_u*jahp+g$55netrEJ8%ZdD?xphdo^E{S*1UEUR8 z0{j9SEeJULev6U-A;n`!50)2J;+qmXoRO5Yp_cBV5Sh9}9bMA|okesFQv|51sX3_96b`B|L1z)|Xleo~ngESN z3#LXGuNS6sU%DG|Lo73J0?(06(6X{6Qa^{6HU> zd_fkG=&*TMq*Hj1eXA|LUKbc6o@uR60=np1<#JcZIbiVq|MEmV6 zlPl;=6X`pynh5Co!lVNI%tWWE3nl>y2i;i{WR98c1KCsWUR5{Topp_bXEQ)R=2>s9Q zbt{?cqPwzjh6z|@iv7%eZdS=H7u}bu+nHeIzK%cCKIAeG?CgWoK<2QlXxX;H~~1%*X3` zk|B0K^ED;o1+td6@4f6l7R6DNR*t5OO#!kxN51|7AGWz?mpCPFC%EWPwLcLo5@+;(qL$ zz)pBx8OSoPw6lu3JJO+&F9b4amt&jZnE8ImW8g(k-tmE*qJJZuNAGt6DvbpE% z!#s$4oG$4s8>fTiC>h?EMf=611a z*xVC#p>BI%DQ>O>r}V_Ol#O9x56*13S@EHy!5ZpH$#bAq(9+`rD%^2lIeC+U{ZhzG zWf4#6^{o?*mXEG&=NA^{&6hu)PsyTTTGcB_Q=MS6bIA(^j&in3_UNRyjEmn{G>eZ?@y zO_0l`Vx_-IVki`F=Vv8n(X(PI()L5E?NsD9_9AI?>#+dGQZsrtZ>8-FwSB}Z%co&x z9(++LS=ua+0ZKXYvOks6mwkQH*+pNo^iML_-$5EgKZa4A;iCIv?^F}O(5fSi`Vbg< z0*k!#osnnWED3~_*jGxqARjipPU&tWD34=3jT&2>f1S(-TUcSg+RohDuXL0ng*N#> zhB9bA=i<1)A3O?gBk(rw_YM?zZ2i)ijs#mGrYK2aA#F=_utDLG5vBKNem#4v@L>rr zzGzBARLa{lElqVKoBzEsq*gWg*P$)}<2!MH3m^ zAe0UDEtc)|q1LVMCI7}bKsLLZq){mwItXV4`vsw>|B=&fg(+O&@UeZxnA@S$n^b)E6r7s?K})V4`Lipc5NPZxb$a1jCPSOl_IEX1ix^(6oH6Z@bgzn zKNjh7#)*PD@E+8mb8e_Z-(EKD5!l93%>TbdhVSQ zOJhYs26qw+BB%2a^wEVfWCq1)&-Sy~c}ZOV^160G1b>gQA((t*{3r zLQso;=8=n_z$%$h;XQGK2b6UQBMvjwkEJC95|$TaLqUk%3eV3UDoa5&sYiHC1nGa? zw1HqpGbvyDm-C6yKKj2(yAX_sICs?LLgDEXAtkMe=Dhj zK3UzG=LSF33j{lEA{FodwhR^D*x>0?LFmF08$P|}NI)e7kGno{IqrO4#M2jma9Tg@ z#HH}3XJmU{IUZQ$d%YuB1|uTSv&Ll)en}m|+7F&W%z!p;pCHa4?y$5&{ zRr@!bnQiH85{L;UgeDzAZ@WvV(u4#;M+jX6LQr~10tuZ!XgM?~7QluKWR@13GeI3*diXJ?;1N*f*z@59UjrDt}H-ik|z3q0nBn6pfZ1TOx}_F+~1= z_p^EBE65ce7VPr4C>RYpPEzyU(327-2J070EOfV*Z(myuP6q0e_dQ%+KG;N_YW;o0 zk@64#Dy?fQ`FZ7kk^=;Y7*LA;9nXtw3Hu$0K5DUphs&*8zq_0n2%XC#1$zH?2U+@T znO`)XFjHDXm8F_Lse|1jz|y<$U^(10Oe8lA_30h7b<92T#=|?~@%ijU$F=uaYTVl? ztYEm~cV4!s9IkW$-PJTO2s>!M{Flo|2ngcwayjh(fTHF4yAGwr>IlYb=nofgy4)-n zreK1O;R}B)?}Um*lrLt9*-p*9EPMqWi~=AEs7lb7AweK_OXZnJ z1;7oym41!*+fw)t;sLt*F2pEndur-9ZszVvs>y(Y0}CdWq7R3{c8 zgi0fLZt_o^VTE~(M+jokES~&H`8d6y2nZRxHtXBQa^!>OttpqvHSygG_jcEn^2?&3 z=n3LbXf82)PlnMlYUA*tIjs01tShMSAj?Rs48U-eor>~4fWzB<4H895QsF`83CIQ! zv`ZTSh7st-oTKWm(X0XB*UixtP6PWq&q@!r{=Ty6-ww55%FXg3p7vw;ExlMYkKc8d zhY3NJF}Wc{fZg_M`vbKb^&sENq9vuUth_^zp$PET4*yAurj9ULCT(n9l+Gf$z#PEe z)QKAh76DMxym41euL&Cm6hV(`hc+5oI-_O$W>e98f4!n*Y@w&TPHkh+B79?i8hYse zmxMZR1Y1%!HY$Q_r_*Vdn6i0b(UT-tq)nLG*c2DQ4US-%tB)0092*3_p^jsv zQM62BYd&!{W2NtupXMkH%FhMA9U4I!RB!5+)2wvo&gA@zV^OU1Q^S1fzK__Q5$%Im z(QoCu`Gr_Vcd&t*nl_4&3OX7EMMT&nC{_>6Y+V%uXKzq5L+9X~QL?`{(^FM@)6>6FwEp4r$D2YV)^ z;~*@AX3hGsDgBPmWvOp|Fs)kYEQVdonDiKr?C5B0G!#LLOVgFBYF*ZEP7_A;iH(hm z042g(W!uV~F32)xv$1F?F)-RuhOxX&{Wlx^w-28QXi)QlqD{yY`k?unW)`iW13}}m zkp7ZrL5SDO&gUUPwzcP|%B)>?VEusIfaCk>VrBzPM3B;#&G)pZDjBv9ICLQ+4^21w z{XgMmZ8a|*?RY5ASOl1{dLp3cOI4$!7cJ?9f5gCbS`qZbG}meO%z+G6dco0p*O?Vo zmOi^+EFt$%ynMQ2I50;_4T0dlq^@bpJV#@Ja7xV|_&qtAu=YzF1&ES-WG3x?TJzg6 z?*hlydf<{<>FRcGYL3)r1?GLq@iBRty|*K1#x|k%Q$#_}w=Z)bs-S@a_u_=u?dXJ9 zMj4Lpjc@=^y3P@Y4Rm?oM#nD(()rr!UzDwZ(ADuRBia1v6Wq#8z!G z8*?X0wH|Cl5gH*{*5@C@#+G-|kp`i35Gz@}7|!IrcRWoMeFt>GVPFM4%Y)gG7nip7 zUv$NXIa zz-TFx05DqaNPreCw6dNWWOmvJ=?-100!_lQZvwFQd7|9q$Z$8rN*F# zrFhVNQbW)^5`b*WE(zeZWv2x2+OkcG2EuLGDgm*!Y?dNHH%Sqo8zeL6ItjS7B}WPa zT`OUDELjrmXqi$lXodvb+Ok@rL0Ki4Kvzgc&}9WkC_Jb4ywguyf12B4Fp1$BTfP zTQa8?0Wh~rE&^0;8COKpYIG4zqU0i)L?eo5`V23k>GP8`6ZFv{qC<=5JN_R?Mgpru zBZcof8fh`uU{=!ans$CT85T`6A9lgf#3)3w^b*J0L6*EN1__8@zMmz)dGcS9-UPGZ zmmQfjI@>q5mw+hxFWAHu)x2*>W0G6=nd5dCbR6$|=ct7Za!28RY0ru!hF-e}5;tPB z?9OQ~#qdvlaO^h{D!7w86KIXv5M*H+n@IKOSUf5wR&gr%Ijf|)8c=z(MJzw^tK&~I zp>jJ20oL-3qlxnL-XJLs3`#{b%eq!R%4pfYajDdRt?@Zl8!da00G?)u^C;=z+`Ox7 zQzL%H>4?-$$27>=9Ao)QqH`?vs)HpbA-2WcbkO_n+ao(nT z78$qhNHP(>06+ehoKY;belvuVYwN5f+?TtyP*~5oSRh@$`#$TLZBbGqDt66`^6L~} z56H-a4A35G+BDH}B)`n@A}i=@T!H3iHnDpq^T@wS;rfR_L2R{eq{4s@pSb7P&*9B9kS#yjDiuN}cq z+U)|_VRhf07f*E>^@MQ2Cm0SS1m6uo%$VkYi@$wnSR+<)*#Y;mvz(s`1XQhOclF;a zgf70L-ven_!5rsOKgtDkU7NcH9!!E_E^>9QbE!aJR?S5dN-;}KI49Sh($J|mj>%GA zo4;L|{^k8mdHDk82!V9pHd7lH^4=?)&m!chBZgdJJbDjTx5z07gnDi9-!`$1$K9W} z14|uoW3QhDT;_a7i;o0X*%&5T^jhLEI)bfWY4)aL21`E_ZelIgJCE@fGn_w(eg!zK z{|eSPgY*Pb;kc%o0e(jz_8~71=D%-nmI@U92r?24!P?}6T30Vh>d%_%gje|9w0Gch zrsnT(8jO~+8{0`XHZ}e`C`Eo@8%mqfnT@?Az)?H2%YF6J;+%&hfLri-0?vw|T8W?8 z>6{TpFwZ{!E{FnJ@Ht1E@c;wPtz9T3^6k$!zc%XoQV-G{kqT?hnm*n>o*;oDme6?2 zk1X||d2sdBy+`58&P)Mj;aRUZ2kS{EP1Ehya>jGxYtAi3f_7jM(6}~Q@xF5?OMI~$ z3gxue0nCN+B-uHJc9V#b&*SfZJi!P62vPIMq}!jbuF>-0rh(ExmYUYE=IKn)@&RkO z{D&v*&;Gi=hrjC_AQEDDY$BU+91{1oR(n%h zB;Gobp~w!*`>FFq;ZgF%1=g>JOB;nxHqMoXQB8CYqo*mR082^ElhROfpkLEkt+ek1 zUh$>#`EX$3M{hVE!>0S6{F~12NV5#VFzAFr0Z!<91;QEVe#aNApp!9`<^ArQ>c2m0 zmjccA^e;}Qki>nzI1}|kGEcng?5igbNRw$jSPIW`I7ey$i@*ck)Rj^h14+9U z{zDGL7h1X1#7c`{fa9sqQ@6U1^UqMP^WihT4 zEryc+npfT9Mm{CZ)j&tOVA!mlX;IS)+8ZdH6gF`Mim=WtZsxiyic%^mlWMa~n-)ff z`~z5AbJvhSF}sHZbZR|`v+pUVI>mVIYwg-18loEIu`P zJWIbBJBY5st@*FrTyF>lX$H+1sQJWlbms>;gEW&KXr~+=lnWfQ^CHs0NU?H>S&jXXZ8iP+-3f zb@ehxK)N)ATigbRyH*OjjsSwU?rsWy@)@QOc5QVgb76nFyDminF15uEM%ENVHgtKhTMb-4$@NH}K}y&32nqE;nmrI_{l<=N z$e#i$LH%Pa^_f=h(<qKpO!fR<*Iq`iWoAzqairVuL!@T>A*M%}ZxbGfUd-XH-e+u(2Y zpbS?Ah7VwqCVh|PcyK^qnc1%QM8pb51iAX`(bvmqK118@-uG2Sbz+Ifer*CaG>9Eu8y3zAwz*nU znLwQWQf5`2i8My>IG~guHhia|xdMU79yO_KgR3^vZ*@IykN_U#`0=TlR#6G$7B*{g zE`02e*H~|cFPvqDM?zIM*A-=ufL-PIkCpp#`SE8oa}C620(HtJUCetw z6WtKT*bY~YL0YZxYIIqsE}5e}D&}Y=&)VY}4UmV{C^QdZd3S550TPj(%fQg?cl{w4 z#ekLp!V;EzDX<}e`ys%AHZ;DsT!UHaaeWKYTB*mTNUo!%bw~xxXBU86#uD zSlo@EU@b6SzWJ8kB#KJ{bZta-_OtrW5?uJcU|Q2rh91sZ|Hq(?oq+-(I<85Qb*vz@ zQGJF-rwe6QzF;t5m`J-bhEF-`Y9_L;K6kb71D zX>8Ij0DX`j%18)p*Oet+Jhqn=eCir*wBk~34JKz1K|uPe9@8YAOB&Y3e9JjKD>$1u zfq9M|>&8Pra!nJoKN@1Eu7Z@LOi1am#dI(&i^Gt}T#acQ(hCrsnA$L6yamfqTF2M1JR1B$l(-QxsY z@h`P;!%ooJU`L+@f0uABZ{EpWS5p=`M2crx3&G8W)nCi=+PeK(V6ba>IiinXWy!Dn z2NL?Mu%7o<9Hl4h;6SB>;=LX<`GYZBjS3Up(RxA%Mzwdj03VXe^N#P)Ow@^YFpdwEEV%mK7brSs-ywH3S zE7)i5MlOBzR8OnTedRd*-Dvk9!Dwx{X|UXYwIA!gBwCvnj&s8b*~%6s_x_3{M%D&A zJta1Qm8H4Arw?xTpf6yE6uPkZH%{uAamKa2{E->%Y&|*41hYsR51KGj8x0s)Zi{Tm zQZdq|yiqdXiKFD1OKap%YJKa%d2Za)0XkIP)RFZG9RUNCkT`z#hA5@HjpiC4k;-e2 zhMwxTuN6)IMVjL8`!Mrc^$9$bRcj}ur90wY$D(v;v#7c4pt@y1!t<%W~cPGjA?} z3t2U*R%qR@vZ5^brpgL~=FH99+4R>q61w!kh2Y1L^t0*xNwRpz26vj#k56bFhU#%i z{`QMp1N-WT`#*fsb~i4`03|AW;r{pKROS#iW|#YA(TcDmJKYt$&>q4q9K}gYE)qSBW(OuBJqq7Ucg+W4J!6I}O5=2#Wioc1!h&RMi6hZ$@P=FU( z|D!Ym{X_v$Y%NjZK`$xwKtEQ14qJaw9s&JX83=ky836i|(hu~e0;t>iqhbN9YW-H} z2>OlE0rZ+eljN)dT-bU>p~Y6L(BWfOfCyU^MF%P=sNGs51B|u4E(3agbYC6dO!yLYGv|F&^&nt=q4Gcv30GS3eeiRSO#8fT_^(`w$7J< z4qIo*K!>fsT4Muyu?K)ZaQ<2I_B3k&{42$pHPWBV~a8)?^u=zcoo7 z20B6>3OZb-?|xLKFCHcX;g>@~ypPK>605a%<3Ta&yqGG7UsWnFgZ0OaswQ24rt-D>njdAvXkV zD%S^XEYqOG%Q2vFGJtz)W_>vt|J0M~fX2$TK|fbofPSV>(VzY=#`q(J3c9FJ-VYT( z|JDmi1n38f8T5Un7U+8l1OV1|6$k*V?L`B0`zNuy;-TBk}-gTKu(B@L_* z*I4y3%>$im02O80^8^{v0BeAZ*4PS(agA^ z^Z@-qq5l4_(t$esd!-BLcS>i_QU&4^>s1936zkUtb^B$7y8TO~73ddA%fi#{M+ASg zbZBqHaI8a%zz-L?VYLV(QF98fJ&mS-U1_o#7l`(B^5do#%}d{LBXTQL163V@;NfmdBd2__0!3-urF$1}(O_rXZsgIa3Rzl}&=-I&9b{ z?&nx)(DpzUe8JsR=)&4xz^MYDa1CwIb=Zd&+>aC1i0I$7?REID58Vj&(T$zFtHe;= zlYH(a_xqaPOU-FGQhegh)s)TF60EOPkjpYZcZc|qK3rI}G%rCLw^7}e?Azm}P*%Eb zhl!opmmJ7zlgSlzOPi}|Mp9$;a7|QY{{NlUw*cU&$=aS{- zTDs0fv2nk+_XX+9{x3s z@O_k$&Pp;WY{Z^y2Qx0_TxZ|LRw$I`>HB=jzsk~Is@sBhRE&pV9 z(pyDRWV-Qs9T56gi@vI2zfpwVc(TdS@2u{KO zGuYi}!N>lw#R~*0Ut>H6E55&Ja%Yy%Ft7ae~Jj~!R>lMZ7A^YkN>uN6Z&t_>sN z4^(_+BAoM0x*9*&tOzh!#1}01Uro*@{F5^xKD62Y)y#adVw)gL;O!Pwl<17sG}Qmp zE@AA3Bd}BFy0_z47tw(R8M=C>*wN1_X3{lg)xM@OaMagG_pWAU zZ!ubz?{6y!9@DO;FW?>zrtV?_^K>6Wom zufk<%)(0DoYl==L$oIsY#u~yn{QhMIi`(qk+Kch5bj{YUnfmjelgNmgd#=jYM%VUZg@RE zc(h^`_MQxC9-!z9Q!pz#SFGU%Js;RW?rl8FD>Mgl{fP>M$F^qi4pVo11iioK`e9CF zn8F!09pIk<)-^1m)6ku)q<;b)ii|5~hW#U`4qh<$ZAD;CqYk!wTzy}e zJ$yXF*uKYaU95P`B+AqHq0cH_#1z?lps_sF-*lsOJzBVhuhIYay9Zj>noPs7gaWMK zHkdw{dQ9`s(g-FP88hzbu^}|J?V-=qpC^@8yoTQ2#&@Ky7_O`Si<9A zTG{Dk74^{RGccx~)lBXM+T`AWB{02e3FM;9JNb8ct$wfhq{{OK{Q-U?z`Bby>UH`s zPyHqPDG0pIFX{WQ=S!hlA<`BlNZ&?lr{Mo|pgmEMO$S=UYPfUx|9qOEHanKu?1Fxz zA+^Vt+*Ooka$Bh94EBxPX#75w+{yR@gU{-lG?m6Nn8XxT_x1hLYpSSJ&4SvVu_i%g zS&Oed;9+D>}w@I&KfoFylJ!^-Ww^;W{Gcis7wL7 z?v|{5oF~?3J&36^t72EYOc8FHy6%(_(HQT92}+KdguI09sD>6}Yu#6={=`BLDU+?Chb_<5_AU z9I@o|@MLJ`PHHk(&C1r@$Cl8}PlY$;7{e!#^%%}B?4JESJ?P+xXk+*vGS+2n(}PWX z`%uqKyg{FPm?=Y80!5w%{v$~Hj@stV%F0=w)D4gUuA7qdrOF=BL%576C z?jrShQ#xF(vx`st)Sd235q?noaZf8zUc&A+XrN8SK#pGgT`}^F?_XQ`0};F<+Orve!V2*5Z}2_|qq9X`(Bk2hV5SS15NR94&U|X^%Sy{0b^0r$^2hQc zIp^QjhUqj_l_*-@WOw_7j^{~7tj}Yo)uLbzrRJ^<6y*&5@m^0o(I7)ua@x<4p(Pd6 z-#q`I=Qv47G|7Dwvmf+KG+O0#Q{_zF@M+I76Di5!V%Qeb=j3yqO9CQ{J@4tFY2vP< z`=UP!D|ja?o)0+gxvu#{Tu&%Foaw#bfp&y}*u(3)0J`9FI? z5#`bIxHfD}8D5_zP#OwRruv0`4Va6bWmL0X(GU{=(?4B&On~W^$2hVdPM_8-vJ$T-d&A8!t zO2EB&lDWDLGi&>UCzd_B*ci!f_kXr=b>8{x+b{EsyyQnuBf$W0f5SYs{I+KeOShXI zVOa~Y3zY>;?#zbX@*JWlS(O=S zdjz2gJNSp^1p}b-oLTJ1AD&h$Ew$T3cIi*_RU^K#-1CDVG~@6q`MziXq@A5WiJsvl z6`llmnc{-iGgxl`#Jo9;B}96YDaI;{em~`hSX@-D^rPlLK@Xs#2x3^#b*t>bz zy@{U}TCk~O>LRp&+w%mUZ1O^v9XK)6C?dSwSZR;AC4M)wS?6QhJWy^^em%r{S}*`? z-ZZAVOl z8xysM9Ch6ixG}-|svvaag&n*mz0ir5Kdv_szIHs79w;ApYLwtf!-U5C0IHfypG29F7 z5)1E;Wa(i_HlPOk+wUB;kVh>&Pto0Gjg^T&B@LO<4focA)^o5hUxzF_Es-6EJB zPVu&91#gA-;t3PHF@k~6sVC{_NnSD0`?4Sm;3ppQju3?Y+&S6n5e)zdoV(&tp zI?KC3;CH8cU4r2eJZ@M0c&g@i45pUfbr`ZM4?dq0KixKuTG^6ay51p?#V<9$=hSrX zQEs2>T_qX@qf5g5xeL;~Ux|hxm?>!-wG0&UbCUHe>rvl67Bk#u*|{Q+Dermfv82#M z6TkeF_jN%S%C|1|UeS>gvCZ8nQ!iLOWqZ@KS&mpVl)=pG)4g!SmK9cye3u#c_Lbgr zQFyd4!&|0<(%0QJUYiKmDj~;PH_(s-MUKhTo^?FoHSfpTP8?5a1Tn1Ov=?TpSz)IL zqzGfTw|mW^^-p%{PXrsrk8l>>9Nu#eEX{?JQF~+$R`#4%V-w)i8cpGE?D4)K8UTA8 zLi~e&D}N75-;+kyE*QTfu;;y1Yp?28*Z+4_j^;fMdGCr8pm_(|zSz5%;OvU6k18V} zM6ap&0*-W7;d5S*IM=(sWH!+%;`m0L!27)5of&9Ifh((;3?JiC<_QR}!HJKl&ZErS zIBp81b_E)M66K}PCrw9HHgVTP1=!YcNKY$2asnxHP0?BT7yfG}UXL%qCToC!*u7qw4Siu!<%lymU-lFmt?{nF^Ul5f^ z{Mr@o3DKwk$;e&8kRMLe^L;ibFN!pOSveO2*0wEURzS zoSJ$HZ+d45MrA4{J>->tZ7xT1-$KdIAKM)McM0fww(===yrYl`N@JVq-=8XkwRL+@ z^_^#fSXQGj3%RgJ=n)voTJzDNEWg5=!2kT+3$smSMq#;kh|Z`$H*E8~2MXaR;SZlWCc662PVFiLFTQdbVAhssT3eZLhgif{w z$}-S;3Pew~y2=vJ7zF|-+e6Ai&}d}=XdPu9Xl>;Qh#+lI${hTNP-cUgm6@Qm6dHnX z1z@QyOqm86s!Rn9QBpyJ6#&AvAZ0RWpn`$3nG}H9HlsqrWKhO~>XmVzI)#QzP{v?` zP!$ZB)vb&Ibt)J#Yq^3U%e4NXV9cz)D;P8DZwkiDdRG|+TBcy+tap?lptlu_UqGCK z@%tyKuI+F!b?>2K$bW557gP5hERF^}P+S{ye=+s(zGBGzY%ISJz<}XRv`2OLS01#gy!g! zId7O%1D5aOSY2aibv-GFyOI;y(FvPCTbH(okMg}b^#T?lV8zWAZVp$2h5WD0J6VCC zPN&0cpa0StsK$uOJRTpYLJv*BC4IvS3dTi~HJf^l-nHkoz7|TN;eY5-8rp^Y$&(#&C)fr=AoUrdjhbER0 zNT}>D5p@%Z~Jm3SsSgsh31sTw#pb0*zTw)tEK{ zpU_u*4#hPt?5}=^s#o%l2CE%J(bhEoVx#4vvWl-9rv9N50(g3oIvAT?CXHEoQ5^={ebI@< z$!bHEnq@Gv%cIq~2Iz=pkE?#zgB=;8?l9oM&5pnSVH)?0RXZZ+DQ`bsy`m}gWk1PI zrKr96u!-tcgox%>CaIkT!NkKStE~+1devjPiZJrQup70oh3nNm`6Jbb_M{sZHm_Aj2@xC*dJAw&6_=wn5Day2C!0(e z(pkYeRfhNe`Rmo)q5)UMby|(R`G8Go5GkmQ*sS&w;hYK?d$9r=+<%pX7;sA+uTEpL za@8S1EI*a2LTMQaUTcR_nO#|Oo|-1au`_w=vVhOucW8m7Rc3dZOhE+Wt#Nzg=k^w4PIZ0K|q8W-y<%k zDi~mnRhg^su-ZisTC$VJ)HCeNMSVCsxhK%bB)%<_MITic!|-bBQT0O|w3CqJB5Qg~ z-6XW)_}i$X%iLNc>+o&&PVAQ#)M19U7_}Mn+s0PDsCE$A9Dn6SRTMg~lP{}ZBbMyu zSJW)r?m|vtC{3NfGNz7t6&qDxESu8uRwH)lH6vKuE&34NF4BBZU}>+Z%}pKAH{<-t znz1V{t7evTCUPzOu~6+BvUY$SH^6n_)d>qagzRPoS64%m>cP|l0&#`RP91eh&$f*YPvaZ7dQLEO z!xo*!kJ?o@2*b3G;b}!`EaJ&w{tjXV`Ay#?uSKm{;+JX=TlOg?UAdxm6MC?Ac6E-? z)^F`}dw2e{U4;W)TYvuDDN_peu`?zp@GUU}^R#AxP&Pi&);*)}OA{1*Z3EcU2Eh~f z-Jjv3mB+9o5KeYj=dfeL-jxbU8LRh@6N4PD>J-kX1WRXt;Zo0}v5RZj@ojrK_@bqj+_nTK$on7Qu;mYktK zW+N0r_v$a3QI}YCbr4NDrNsqu_c5A9{x@e!nMojZv677%k`02iv z(3rXWqnSRRPPETwAJ3syrDgZC&*Ro7e90!!4jg5nZ#CX7;I$U}w&M?obeH+giS{Sy z-`Q2I>B+)Z`09%Gh4($}&#tZTnMHd#zq7*khrwtE7k97~KlQ{jk7^rK37y@A*(U)^a!8(L#c7apE1eK(ADaCGZeQCWhvOC4e* zUADyrZi%-qhK6(hno35Cwnh16sv<1q_N~4@bw)e*v=bxQlqdW;*uARjkkVNd*%)OVE~>G)MUjwWBnK(2zD4Yn+8(eJ5y{-27B<9purJ!>@D zGZ0^3GL@p?KI?Z6wS$*^q3&PG#n7xb+OkpZ2Cl#8`!N)bpnthclXY`$1A8W)c!g%Y zZ6gvux=?1S&*QK9u46BO@!Ov!Xlek4;D90E#0Vl#*lnp{(0;2}W#T2<^|9#lOI8zD z!!Q{ew2_;;ghgN^A3jxw9s1FCR)FUCOnSS1CgwQ012Pq6Yu!oaZ<+* zmidn9LXEnB38Q@e|JdD=H)@9mKRJI?@~}Bmm&DJCD>kt7KYWc0kR0WvQaRW;(<7SH z<_#RaV`8`o9LK7v+^?`5DW-mmxqXRDO$_YJj?9j$#qsmJ7!jfiFfVGUFAmlPgfCj7 zD-L4wy}tF~5HoG8|L^(VQ+;=IMsUCDqT#dUD?=PpV@x5^4+uVl`MRfO)0gHTUx^KEH&1?zMKlTQ#tNE+zT;oW@vlUtu=IAJ*#yPI*TCkmqxngJM#&g2U~bpO z^>NWZ=6Ui!SrcKfF&c?tDifXQ5VDs|i8nu#-!gCpQ~?7CC^8;k&4hF#nC$Ap9!wX` zeh&LOqAKU~17*#HJ3@?9+Cpe97$GkD$BZ=;@L)H{&aMmT4ziym(5 zZ<&x(U4n^MMiFgpNhsg++Ry(SgMlVUrLq J`7D@|{|C2pPMQD! diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 4e9ccbf0d4b5117ff5d9b4201727bbfd4b266c2c..929cdfefed3a873a16b25589b689241b389f623b 100644 GIT binary patch delta 36408 zcmcG%2Ygh;`airgr|#JeNq|s7+t3mqz@DvH0ZHg0C7}soB%4MNLO}2W3Q0s1Y$ODE zY#`VxMU=q?#B%Ktyy~@Luy>Pd_p1EAvneEA@73Su^S&F-?4EOG<~;Mv^E~skIh5C) zR{l(8Ww*qM4u|S=ocbhJrTevsjv)chzQUb`S;C&gJ=Iz5Hunu0#fS3{_ws?fFYn2_ z@b=uzb?#t4vv1i~>=X7Ldz-z+YT0w_$?9WfS@nG9yfWovMK^~-`K}@v<>wV$QJ$#i zg7Tjgol(A6(Fx_l6-g-fR&+pldqsPcH&!H~+)|N%^2&;Mlw}p|P_C|Uqb#X#p#p)3#mJLI(;4~D`2#RSLC?ycdcOdZIYm9mP|aNykH& zNXLViN5_6lqvJlzpW`k}pJOLx&v7lL&2c4W&A~Utt$)&W*^@3No^RF6fb|(3VB1mP(dgdE}(`=r60Z8pSRZ|mN($F>83?W67f`?#xm$an_o=3 zhOrJaqt;x%H<;`5d1D{DNdDoPFPIyM1d4+GKrrYF27KPwSpate1-Y>r8Fp@wT^#$! zreXZT-6*a`DD2~xuqZw1;}taB&!^MXA+FQCer_ufZ;0yr+~bUReO@1i<{)Q)FQVrc zDRERD;NyA(0=Zsv6$*!Py+M3O!st?V9?CDsrG~#N-Kchhq8k7`9Kn^70p3N;@OpD; z$Y9=?P7Ctx9WpXv5Va)Gs5g1rA6Zw4?J_J)dlKqQ`Y>XYFujy9fIO&7zch+46~0Dgs9onye>ptsl? zu)}uPYlr>RJH$tMqAd;l_$8|Zyclrf$LqDk?umRh)2BGtqio9lME59W(DHcIv1eiR zzG4skG?^#RK@Sg^S8WZpQyq6MZFAXAyC=Eh+6TSfqI|$;TXQjkMH$7#l-!rUMI)y2 zL>8jF#a0hmJeBw3kszJfkDpCnPUZ3RKtJ9Ca=~#qj;n>*m!DMl<{&-RkM|UP(s-T0 zs>sgf9Vx9pA6UKf^q$P3W&L@2vJDLQgW*8f7m8pe!{LD6mWS6zH7oUQRKHo#%Yqrc zf{@P_@fHFw04VWLP%ME2R_$WH*DfpqBIO-?BpEmT{F7h7mU^dtwQ1WpSqdIVS%Y}T zcEv!4{8)2+AZyySOG&28dznUiN)*?y*wX{Wg~b4^k$U8nAPAv((qlD>V?^r9FUs}i zqocz7TsuNprLLaI#RW0m@P=~3lDF)F+{VWhhp9$WI#eg@iKFwbWlq}pl*^>-QkN?p zJ=>BugW=o&CXVW7Ig?Uij|uz1-=R=2;wy}zV{l&MA8;3_ZYb__x$xUaFX=BwbUYx=t&OoT}17^mg+#J5ubI2xJ__cqek!2w`TL2}zR9DGXxjaV7ATG?h9RYDcG}vLRBf&Dz1f;bc^jlsVRiyxm3Gyfai9$$78UdGhL$Wut$VZ(h zYGt735D3hV>pm&C0Hl0&0aOSpA3q`h3Xkvx{Y^0A3oE-HBm{(Igrd1<7AS+b!*%dV zpy`+0@~d_Ah@A`0IMqBFfu_}56KH8_Z5OnvQ-D<_ztwq>KNp~%>I2fkE{n7@m5NLZ zn3x9A1ZM;!XNOwu1Wz@O_@N9zTWKCqBna}Avb(X5mH}b4Z@$)QK#_0+nq15Hy)9$$ z7Pjg#0(n-@+}zu0ERlRDaZ)#mJea5}GFJ zvN84Hpp<3Z%l_L!*CN>drxg01La12=S#zUdXw<)xFwvNV;Z4i?A4%XY^I&y2w*FNy z6KxVR(LWV4`Trk^nfxX(liwm{nz`YxikSQ+5tH8}Vr2W?O`ZHD5%V95RLusZYnjwH zTI3Oa#Z<}WS#1_Gl6|E-vBA`KSjr7l3_$|;APFSb%NvC_B3Pk38)68$*K8TUt!bqxf)MRG9BpCFj5?H)*ekWMD8xAAe3Lc?UZs37zwNR$*7Z9`$j-soRwBh{Hx zDo}9~4aCfk|1$S5mQT$#2rPW+3@|{$Xw}_cnR`3Y3`u~{tj8K=02tvU_F;y z4Fw>KH9aJ`8ayAHcg($m7$yRKS6}AmvaMehRc&TBQv*RDpQWxM6o~5>}ivC1ebS=YN#^%nCXJ<$) z&W4R{7sIlUwm}hezamV1QIj*F5X*HT)H)c>b^%DC0K#4h{(Pu-`A{CMe9%Y~9YoOq z8(#r&py)bRO`S`XXa4FcnjBswVu7e(9T2C1| zZc%^&EecSel@@3F^5M&Br8U|tD_*>B7Zvh9Yd2@>vrPTr?O&2jK&A(byPhU%i@c%X6 zZSJPb1`{-2L^oFBuv)9@&9^bBO%*{f&A+706hnmF+@syBO-pN~1+doIb8{1Kz89Wp z2Q~HJZPD}pP$hizT(t+^|hj~cD)7sv^LqpX6G>Xp`~bnf_5Bz{AFh)Ex;>DCfAB=yv0-{Bt$T)7lTCE?F?6FU@vF(!pV zC@O`5gr)hDf$4>GkZ!ivU-R`wAE)$W*>L6kfh)@%94cybivZ!$FM^t3U*JF8S-1@C zic-?~z?4wYDIb-uWw_FO|Gkq7DiA2NrHbtQujn7Xzvf%9!%YeZRsv`sSV|pju+ltr z5?2t0n7U>yBqsYIWua%-SR|#amn`osz+{(MSYNyu;K48$Nlviz9b#GW1|e;w%Nc$@ zZvgBVK&%1_ksmP)1V*Tud|zP;uKTb>P%v? z`4fbQZG9#crlwE8XJH|3jr0r<%>O1stowec3bj&WGK&AiHQ6;U=#N=Y%@2kj^b{0; zzKv!A{I@^|t)&&dKqC@gVGGTHZs0T$Y&7NmtIjL+6klOmcq2{P&Hrvx@ViETuH0bq z8x>Qjbx4ugsI1^DADTrJDn}HWL`+8kHD!RBGTdKd-5dzJloQe$v%zDw_t4apqvOV=iBMW5F~ zBPn&G-U7KO#N@AB=i~&yFOSOkh)_cV4}pE<1H6HNKj;et1DN7U9M=ogiy$MrL8t-w zeIp$k#`}u24E~nFw$rf)??O9A@;piy&vV3!NTg8M4mviP52gALH|Wr4o+k1$`7VXs zL>tHRRa744sWfN;zlgkH-cAf2%YQYr_NwFYL7<p`2CE^mh(%+-phG5qoEslP(|fiDRH@T zqL?z9KWMPqY2;C^6OODJERX53-hLe#_Xslyf#8 zOWp!r`v(uaORQhRm+D%Q>Zr+Te#RiAg*bL^H#@41hm)Ew#;|ni!P}U8@ZC7}h?-J9 zm5J#a_+HNTwmiFOyb?px8Q+&rIUg$%MM4p;=VIh$ex+0EtU9))#QKlFj=yX^aAk*1 zs^i+0d6^_?XYjF%9=d^#WB1>FBUhUwL1!dgAPyeKj19$IRL2!L&3*J>cJ;9i9ck$X z%N!z!T}GpdrE%pgMsx_jthp$l^Wpj_`bTs+NI5Sun~o$g)l~rQKy(kH&8Do&SXVl{ z%G9WQfZEfv{Lp$swx8^4w80ea$P(dPZxPY~@V(^pVuY`Yi*Z&|gd<`>;^8Y7DqN!i z-l(U?SQ2o^kbmQEd0)mx!K(PxEQJb?V<6eR7}2w0OLmK>crpAJh)8>j%LZ2iS4tSohKh4{^Ic3kfOe12 zp8MRR$dk+l2=57gAs3(B&$}}As5tZiAEnTO73>0fRPgcaF_E&8y~}C)=e&T%J;EPj zhXi}h`ZuFW?)r`D-?H5J1FNg>Xs$Xgetn$lj2)q>ziH=*(#Nez zCQd%ZRnBU}p&#Xgj%>3YmaQHahklXgCx7F2(bq?LNA?8W^dcW9hSc&`74{@8>%qH- z?yvApPCXgR-@_wfWAj|;E)lou$}E6$X^V8ehpUh5?n{-ISOsF;8`e7BGQyq`*5^gm z3)W$UN(Wh;$@2v7FE73zvTCi~3e|dD&r$skyo32-1Wph;5~7L+tWF~3NB*9|UZQ=I zT%*a;!DUhDc*~&eA-9uykoCT}{006fe?ZxwY28&v-OA?S^+l$dqxSj2ZWuJ3*?cuN z=s8ULJ8mAMiig}?sP+ZsrX#Pp&lfw(-9tHkYFE-MmvSF_nG$Q+UE)5sGD~6qpp?$a zyOcLk(WuuXWg_hutQvIB+nSepy}|-wd!kaz*(I&gipJO*LQPY!j=f3themhd zNmt%il(&j3syN3;79KB7ZnTBZR+_2%M;g(QA!kcg3f)J&7!$)Xq#xroBYac5Ayz$_YY>$jyJVMwDel03HLXx9iWlTKc#bfwC7_y9UGTPbjU_+5`4 zn61wmNi=pd^SCxZ+&4#=#Ba*#?fO9pBlB(F3Ux3t)0XX1I?>nT)kLcAsj94)GM`b(S%7Mu zQMyyzY&9-1X0w5MA^s5S@nr<5B2g`(2_GnrN@{nI`k`_*^O8439i+iO;zJHqiaNN_ z&X$4~LL35^vNtIuRPl=1mFmJ;58@vyos@#~d|EbD?WB8F*q#9%s`x<-C)%EI)22@L z6nM^>Fm~El&#H?kC0U!4?8%xk# zxtNq)OVupRoA2`#Q+Xi3oLgc47zJ%&1 z(4^Tnf}2IEuF$@tk`Dg=A}Rr*>cpC8$%xSs z2sdk+GKk{SjU-7z=gGCs(Wntn`73Jje^OKD9;pL>`h&Ay2%X((Y+WUqwvBMvb93@<#^dj#$ zYIiz#rWzlkIwiH_ATitBnd-lB8J2u_69Jwma(RAFfSuDN&3dLz^NfH+*H{s2{EVpp zbyn7-nPaD?+39vV{-sU^O90639b}jPSE5}XW?iaB2YW&UNIKPGbXuJiOa=q^{9#F$ zob_-hD4;?nGUc9$DWd1a$_ZxHUw58Ib?l$}M`SuvE~;PPXrS)<-63(>V&z$d{fkaq z>%L4}QL3y`*f(_iHupF&aJ=&02E0HCMtW!Hl=2BqAKDMN}^dtY9^$ml8`#|2CR-~dj0@U3q_jD zY?{-c%fl?O6`}JHt3c(RzMx1QcKr^i`Zj{D8 zY5D!My`Z=1c%)I+g18RF>?!)>3uRy%nH`h4Ilq(8NpM4l0ytp)XGpi`cQ}5g@)~78 zqoj|u+SMe_1?2fG7S~L7lK5;%{3Z1M2_;q1?!U=;Ps#cNCRo|HeqZyHs{>7WM%gTh zetjDnheqJpq}Va~)*8D8S^H(LztFM2sYB_viRy=PNeEbua?5>_BPQOH1YifN}$GtI){|?ZbqWvoU zePY?&$`ufo-PP+v+7{(a#u=xSUMiIBt;!8ftse}$m|H|_zEgQmx+Abt#R0t)EsB{~ zv`aamYcNfA&y++iD=k%Y27E%vU3QbwL!{iRoWMHZq^PzvW=Hy8Imr(|oKC5pW>)hyU@npz|D zmz7^I==M~*Pq9Vt6(!Hq2B?n5B5gXpNA_1HUOuj*Go4|_2ul)bo$?zx??lIXfyztv zDM^wsl1*)p>iF0AW}aUIW@lZtpD_^3-nng`0)2Lgp%jV`JRrTEP~IW$aph*(`;)5^ z^@>yfDN6sPYyo)5l=!t$AvS!gtW#JwN_<)AC8q9GdT}x8XQhU*?v!#s$&{0C(p3r+ zh#i(XS3L2HlBs}fj@_(0(+cSVNDna9lOFs<=_f!S9)&i)ulTm@Q#KqhRYheUk&vPO z#s!a8;Sx@vWj`pJg?F!V7Z<}js2dF}U3EOrxP&*OzMn)rHs7$mVpmk1!$jS$io!)+ zFO@WHuFoMcFL1g2n1k`K3x9DF8dNp|o$j+J$rWd8kD6>ls={O$LPkX z^J84&r<-(jK#SE>Dko-{=ru?EK!>gY_4|6UBTp?-AQ50}%_B@okQQIdOtG_2Eiw$p zW(VKm*bIYUy-~daV)%|F&6JoVl4~I3B_$U~ATzF?>r)*M4r{)DH(k6`U8@CfD?;8e z>cvvg|5h2qio}U!YBn>P77)2~%xH)G5irM)Pa(Z&aGGms29J2D{Ft(e-kHMV=-y$_ zPlL2fhaP?V0#^cg_Chjb5Lj^pw-G1M)ls}4u&vIOEQXGNx<&Q-6t(FgHl;9iEHBES zsrN%x_^82D`{1j7BbG;-YVKD&y-uxX2$}k^OQSJu1A#v2X)C6kDPVH!gn^1*)+DB( z_M{i2Hz@=w>~v4*^62~}(Rqc@718|Y`9<>eh8Q~~gbH0F2Zg+rBuP6fvDxu;?K`0Up<@+;ykzi`NKc?9ShFN2$j2UKSO`3te zsHjs8JS4%9zIeeo7gmo+Byb^y`WP(A66~zwa(l@7Lt+ zy^*49nfg4$=PdAF2EDsmxvCS0;dh@%1ew1~SMLN3)bvzW$IHEItv)nwr8-11cqZi; z>L^xtO_sVK4soF7U{V<7`%g+5Dk|v%n3e8P>EVPDQ(Q=i+mvLGYvLxQ zyWGyx>JwA1ONjSY=f->ic1P&-&nGDfDlD~p+UYlwX>!;!=+a_WC-)#=J?0vKeo1SK zUA<^Wz#T_Jvs5h8MLa-dpF7>56?U4`6eJlHf{==fTa@TXdcn%&%Zo}@%v-T=NzwT$ zqDx9)Wx>vhsndBph52KObLQvHGihg*6-RY*)%NuA8nq{VlgES3zz{!@k`T5guhSYA zdmK%@$!$={X6+0bd=rNnf1Rs6<=x|qr@Co?yFB1_rVRE*0*LV-(&Gg=2L{A+OnSMOkRLBTj*8lubfSw$%{3Q=(|;YS7B$+}ju$~?B&GXAKUK?Q91fWInwI4%ie(kb4X;yZkEUg_zyV#m zi2=BshL%UFseQx!1@x1t-O|}x+~V{{8cOUp+D#REoSMeyh^2Ms;Fsf;R!B2k+G?Jk zPe)yvO=Evm6R4wG>&P<10JnB)Y>mmL7vr=%Zii`TJMCr4h}S0Lp_j&MYe-GdY!(rr z1T7~9=%z&NLWzeQQrl};JQ$+!?X^dM52b^a!^1Ys>Y&|CYDeu19)zs!sGWpFn3|+L zh(^+V*GU@-Yi4364M8KZpp$kji;Kz-hKxnP5H6s^E}EZ5qBO3HHk8}N^tUdWM`Gx@ zF4{`J3{;F7JN}F*!z?K~Jq2m22FTb%T9f7K^~)p)zdw=@jtub3oN~t0DU{=O&!;8H zn$^)084`gcO-&u>L9<4`AKCvjQdBS+){tbaYh$R(fgQ3w$jdb2@SqIU@!MS5^^=+- z4))N-a7vg89=vfVi=!^TsEcX+FY3)5Z3K1@z(LBMADPeWOdK<)!L3i+pZE4orMmo9 zL_QsCCN(7JukWv2=Vkj}I-oL2xJUg4j^v8lr9N|fpbo0uuv=Zn*jZF@x4Kz;HCVrs z?caNGHmg2Tx>9yAd;ji%(^&QKFAveX53|JmYaiRss@DxkllSIO=_PvS{goR_mFn%k z#HydYf7uIXGjZ-?>TR6O73vWc4&QU===TPK8c(VpD=e3CerBCTw`bH(6m~A{JE~5l zvJ+-49er87R8$tbM>3jR;7+HGN7b*{JWB979}ov?)iV{AM~Nv)3Jv{-YcP$tNbM+! zUr~>kdL-t9mKd8&*$bfk-T97s7T2Z&!UD?roAwAHAak1dsZO;NR!E00)Us&AW$F_I z3GgBvybkW#dZ8uIZyVJSV&q5alME97aG9)ig{)Pmbr!uoRX^bHA0J+i%SS#|P2t_C z9cNF;3&F5M^AXy~TUnDNhdr;NzwOFXJ z?o%%40?eg(*Z0F0Js_n#)9@&wc zy_iOBQLhudYz-q^MK%9YJBuDAS_KoCcY<9-W?0MB*$A;?gce}Nnuo37s^eQqxfsfR z-A`~mOR%W?7N%3rUFhtd)3vTr!^B$w*o7kAqctd0zD9G&=UpV?`)ZdnarIbjC1-0X zF<<*a0Ll&uTPNbvV^uG0tXf8ii?m51J6qeYuyT=DqFvPl5CNbgG&DnV9hj}bQn;8J zUaX2wf7lYFAjg8c48tqs(s4YC3N@`HA4)Cm{-^aarg^$9uox% zwVj+@N{8#!e^BKUS}FauRlSlbpVTHw6nw1p!(EsNb5@HU8Y{cA?~Nn=(UYLyE8cBPsvJGzn* zFV=1oLnmp_Z3lg!CJ3x*DGb81YKnFrVL_9ALv|Ha4b?h``A4+t&~|HM+p8(@a_vhR zwoQ%D-Wl4}!u-4TBM^M8I-U+^Sx(t-GucDoCRqH8_HXJi&X`Ky=I~zP(r2|OBYqT{ ztKnIQr}YtSI6Zs=+;n4}*S4Y^#PZShrbo}uAF_Pu->4$T*;`31NTtg2wGs4udo!ML zKeH@)=qNT8Zaat`_P(H{$|6BuxTZ*|GdVA48PxqH)dWG_8@0hQ zVD8ep_khieVhc_84jw@7<*iSX_R!!7}Ylg6X;K;&zaU-9-%}^p}~x`pBd_8WyKNjAgJQQyC~c z?escEdDEFH=iqLt>5SNJ<{j!0f^x8eWmF&PTOgiI)DJ`7tUl2{rik4`nG^I2Md=WI z3=>Z$>04O!<}dD%?eDGLcjs_-a~7d5?8_I~UG!|JPwwifFJ{Hn35Ukh%w&BXv-cl6 zdnnVO_OSazX12bT?XRr4jq!k8UH{ALAVr4*)|K2NLCX|2l}97hp5HR6cjaA2%ID6+ z{&00Ssbx);Mrx`jO-94gpzNm0Bj8QbkeOQ+8KmIcy%G=R1L-J8|r_$$dna8_EcoHzGal?0!1(sy0n#NlZst${~p5 z_@2BEefbsy+B&lp==ZI5TwxE>h&Qx5{xcUL zUp)PjHk`9ZC}lY7Lq~SH>V)yDR9zk=Z@fF>!QuL6rarbg-Jqgz!F?s0olc*<;Yy^b zmTn5m(!XQc9t`sEetUtm?&5SfM_p#H=iPj}ZXZ5*a(#QuH7-k68*5c>T4{>(*3*#6@e4UZ{LPt&h?@T`x#OSQ$6 zbp1i(-c%3%yx;!H0j0b}U#?#J*tHVr&*Gg7djINShxXCDLZu_^6>4^~_Ix)#kf9$` zwehOs?E=w|$lx(7O?R21_H-RQ@)VlCKvfqTovV+`Z!ZRC>aQv6#r;{I-szsuP(q|%R-x`+{>mhzu0vzdn)G6etBQvgl%*6llt=j z=N|>t^LBZ}+za&E82o?i5gv#Td&07}^huy0``Gg8%1%yNyIOxtj{Oy?8>n}svilkE ziUbcID1NN|9qri9@~c1T2gBe2_Bq4viWxoVr?t9WZGYCGUF@|XX#Hv-c3KtCnsxfQ zHRWyO?r2z;!=Gci;5GM>b)2(UZC`= zuKUF#d!v4++Vfo>YQISjR!3i)4Z&0zFJJqBttfJjf^1Gz-C2hTK2O@<70Xu^4QP!1 zq!uh6?~k63jl1cKSLR*dxxnKOjq;pz(TMcS717YllIW_^)5hhmOgVk_q-iq>&Q2Y^ zqGRo$-F(#hlQ=^{0%zs-?>w5vNtS5~CI zD%uz64V=A273b>6Y+axuv-NFin23a+@;LKs@xWqzlF?2^3?WePmM(rK+lOHJElk;a z;UwBOTi<4Wu(#Wp$kG}XqYm0VM>ovl_oqz+Z_I4GboB}|krGPO&Ty{8K?HrKn>6ce z{dVo2fbL!SmXsvXb%p+!!s@DPF6=>*_p*D$3#;@na+9ieO+%39A{`l3?^V~7CX1fs z`iC<4=!(Z!uQpS2o54O5CmL8cE=s@Bix^$9SubNB(Yz$~okR)&DT_qu_j)B%kFLy= zsQH*uzGrWXx~+O2yf=xmJHpVV{buNpYCZ%5UADiMSp5_Zs`0md$Usnd(Ql z-=zAh^{rGoPp_oxoAv3mcOG7-Rr#X6i7viFuV7!$vYT~Z%hh|t_jl@X3j2~O`at*X zbFW^fu&*fPG9yUYqm{kY+1Vylo(?;$HSIc2??*@C zdFF%gSu0fE9|6G3-&npJLp>d<(d)&x2laS`H3<7b{U{RN2Eabu{SzBOo=5aE=<9>J zM)j{CestkvCFU~vS9R6qF$dc7eE4O)WUAPENQWKt&?iHJ(n0}dZ!c4d*=IPu zqpYv>!?e?FbQGDl>!YCOzU#Kd#FzAk82g@1u($%MB*@pLwR)V%riit#>lZ89w`lqk zReh(A7n!f>XF?Lp11Yw_St;E#7;s+ruD+4|Otxw)7Z=p&m4>;?!49&Cj$M#I)y6}5 z4&qgbl=X%&7n-9onEFgHIw6S0)x*oPY4WG~BJ-CUgHsU*Tq+?S!I3M-e#G(X(W6IS zq7xgrCq{k(`A$cgD5&i3vd^<* zJ4K}YBriU;w%rKfF^ufVAs8#`EeSMnw5WH9WW*A$cfSy?9P9x71MjcI=W#q}G z22})%Z>W4A0!~4(=X5g%R>a+gO4;+wUR2r1SO%95@(lORF_utX4bqz{pEkx&0y8_% z&`M)Kf*pb5Hh?7kKoBp(<0e&P7=2|v-HBU}>U#1c;{~Xu%kDF>$@7WPKR%j|pg{m> z{D?mU!g#CJXmdJNiS6eYiE>TkPLZdXJAs{^#=EB6f9sWR656@iNacY-@?2|7FtI@n z4o7YYug3^5dauCfN!g1`UB}LCBtMIULZgtAeWTHfvicg`&?^+~ia0YjBzXq%@Xt0Yw(g9oRk54O{h#!xZeNG10=HIeR_Z^TpW zTD6@OgXPpSOmw>(4;e!{<{RB(Rp^G3=0GaHoVRP+Hcqj<1BhM9`?bB^&hVx}uT5|L zyxsG;hYh4V=Np6h9|OWp(v2t00aQQVi0dRFXfsU2*{~ zJ=fezC07{Txz9^G`#T377-9M(H)6EWJB@ziU2l45O3>(k`%(iGJ4n%y@nY!I>+eP> zHh36kF+VMfcVbt~Jkv|H?>oCu*%~X6CU-V2lCXYcOaezGE;l*?f@RE{%6%}Zx)?HT z8LzWT=?Zt_k!Os_j2A{J@isG!mMZ4iG&R>)$f9^7qA`!kRvJ~X?Gi6A4kn^e0$vY+ zAVvmWWETttM2c>{i>0Ke;RF32n{ReYEQ%o72nv-Z9m;}ydT@d%4Yw*XmWumU8!a>gMF&#fGp~)EuWdZe* z(39-5ja`&|uaQ7UdRZw5V;k+Lbh&X-tnO;`h}G#OKoT99*xlXuBzD0g%2pebxX2!5 z+z(Jwh=q`IlUZym5Ci)fi$+2NjDT>z84dc1eYY7VYvG11 z0yud9H~P`OyNvr9iM_nk_(k+M+xQUI`-4=SL#ggQW3{;V9Ag&7m`d5j=0&1B&nP#V zcEx<)U>{&M-(<%AwKG-6$7OPoZWmZGmoS|pw+@>L68j;!osN5rvqa4zBMW^GqJ4Fs zogPVs8{2IRuR@jcorzSs)Y!tY9c=qZv*53;90Dr`K}Yz+sFK4UEcSh3md7>C~@-e!EsnQ8)9p|bTo1AgS}_LVRnY7 z>S(4Q%VIYab#Jz@QfdJMa5QeR+xey97JFBiJ6WuTK#iWUx$=n=uko%z2?LZK5(vLY z2^iB^8}V{B-4rs6|G6}#D`+b`83qzTj-P|~Zys7P zIUXZPBsk4;xHwb@72&{*2DW_g463SPU4I8=pBR`CsyS?oq#ehNaXGg5e_7$r#b=&M{EdtxRvEHrAVdrwz7LetSN%_&DVWqrZ zT4HP-W1KW%jen%0K=ivu&@G+ucwecqSWRx*W1YR~wLp@tXGV87*N~S1(11gBd z$2}B3hjQLB?$bH4&H4E16AL?2>BsKLlzo^-y=_Itwc_3e<1Ag75-OmYcE ziLJ)n!aL5)Mt^z6%d(egat)hGU(Sb9eI!Zh_bG0AdV=W{x0&X-3Y!k!GunzwuW2$d zyq)=;hIn1Cj^-kD=Ar3x#Z?{6Ws1%xqpw-i@Ts08=FT*C@zxlRmk&BiGGK2;rPGZP z%C0d~ar`tB=WPh|#oZH`f0lu+w;3oKBaRnolVm3=r^t64ZXS02`rb5OU&Meb}r)6OXZqV3g@NSLJkB5yjiLQ zML0^R;eIViZ13(aKt|n#W)gX?HJ8dxmx{d)JF}UHk2z#1+o@~p956D0%PTVUtEV_qV=Sx!fOHqR1sH=0KcZJz4*>TeRF z*}@fZHy}2W?Y=~U0?!FwDWZAqXTcG}ou7yuJ>6%2?V2;^Gs_Doj5mmM^F{YSgK*7v80Rez_B+fMYQeJ)_?|85+lKIX;u4~fD|0Pfx}Cg4R3jp=WQzQjJ^7Q^9DN$&Xn1Ni#JEu7`aPB)zv zagP-9_nJ2<2+rHrm?!U09yAe~2X0JwvJaZ@WM4}5cJmUk@lo?agmR&tGmcdurOJ}CRaG$ zJ)4yM1x11-JAXr%=l+R>;^+rv5z{uK5@AoNwnFTE!OT_&Lq;NzgI_D6J>559U4{^r z;_d}TJKu8VQQbBZ+ixBGI*LxSvc(M3xkq8wi)epY*;DRJrkw+oEn;dr=K~BeXU_-D z4NSZ{2eDmIdz*7CyS<|`X8ddyhaYriar*ii^Y4`Vy0Z@r>E(Qt?GT3_!euGuABiFK zCdyd^OR;p6vl6oS-$+vLSPSFwJ=`>As_J5cIGD$RbX>BLf~oZ4Y)+G6WBs>KfXEq&Ti-D}Qg z>8r^W5g_Owp1#02oFP1TY^pW1k+SNpb$S%azQJ5W>uz+$+%O0gt}{D`JvTaY6#Clj zlyNYAfb!Ox*j88W#I`yi68`S2$5gGe`qA!Q*lXSMcJoRkDP88A!4A@~TJ;L5^Exk} z?RPmZ6<2I>Y6e>gj{Igu1z^0w&=#qVpU;oYu7Kp+3RZf-{8rBK!#JK0 zSs`aK6Fnbve#qIA0z8w*rC6$qK}(+RoG@B0GVvl12Y-sdJD-WK9(5)ua5X1xhaIr< zgwaow^>;#3A6MgijI*bS&2>K{vOjRXjJUuSc+kEcsw5IXg$3o{&zwRn0ky9S*R#%R z4Q(;3D_0AU#LVX&o^_t;_zt_LA@U{QsWRxvAII@LReWOJBJOy_d5(fGWX)=GjsTnA zju0f(tTpc-&r-L0+algwWH*>5m?~iPi(%;{QSq($Jrg6-+~Bg)Bi3sYqN8Hjlg^&- z_bAqM8rj>rLSC$;noXdT&Yw8HFxbnYVYYJ!lTUmpregntj$LC0#AA441Q+#hKn}?^ zuZV^`=L5V^Y3ub3R(Cx4dU@wnI=0nu@ue1W-trc4mjvf+T2^MZT3;STeBvfhPOaNHMc#i$uz|`+EEWUY^;DT> zs`TzaXFkp8W!=q=3pPX<$Hc@G>qbK>Q5~O`wM&C3Czw@91*shOPt8v zX`Y)MBK36ZZN@$liSL;mnCP5kbv2NoXiu8*_yYqT3c1*E~820in^EkJN zZQ0fmMF!ORI^S=rPTwiso@F6n>I+eot{?$*{T!>Dvo8g^)Iw5JZC96D#GmbKU@>71 zp%){LugLpP=V}4r6Gh5u)LLk2rK;omUn`($2Nxj^=yT*mH7Q6=F=d0bk8AY+;m1}l(hv|!9!66&*GM_jKQ)EO z-J-nCdWDIktF5mX`&l%Mb;aWiB3>8rH+xlEAE@jXvGxrM@>#xbt+esSdJ~`iep#O`FJ%_ z<69l@`j33c?*Eo?V2Ucpu5EeSN#oN6hH!~wMum&o$2s^}J`}Dm*Aua;3f2A{9u|+= zH9%bOfOVz86-1iayf)=jNBbrA;qXsM(UK_dQF!%hPwL5HXDBLAF069{<+L#92o;09|P`hokLftj@p9QDCJ;~(4ce{_Py3oOwr?fu!OJ+*?X}H>dCG=af#_#hsSiKsO^$3 zPI1k|)ODkFZ(4sB&vkTV;9hq+dN1oDzHHzTCT4bZ-N(7ogVVI@*3@!qxZK2`)T^pQAubca?Q5{d_wA`qapdqCeaSfZh#)xyTvu@_Jw6m*< zfY%KYNF+`kw&sbGHF7g(GqF|2D5p2=dP3fMiYEj2Zr4@hxy7oZb-i2{Q+zwuR@uCd z*!e8LBJU^GI$HZYcZ)BBt|UO-m-cy8o92Dxg!_MxVTg$tu7enJf01+C+7si|6ZB!d zRY7|WTRDX1PoW1!yQXj@Rph*9A^pNR*7XxQN~4_btySWp39d_lqybcw;;JXlbY$)P zGRbwOsa>Qx-i%S(&El(>t^^QQKfskv_9w2D*we#8V$W>XbTox<`NAb-bgpYL`W-@c zy=$oO=efQ&RIv0>ihkspAXYALZBle)5c;r%y4ZznpNdbEZ*Uz)T8eOQrMiE*5U;q^ z1;_hNRUa#n;HUCUuCrn7td{lbK9j2S2t|{V?RW84UR^XdyB3QJwz+=Qv@+H4B{uf` zzv`|$Jj&``&$rAZneWUHFd&OI6P9LygqdWrsR;%Q$P%)U2(>JknM~NTkYK4>7{Pi~ z2(p-;TmeY|30D-93r8%A>El&aC6-bZ5K!wdERb#osqf=+6m;==?&UG|~x+q5!Vma5Ub;Vo?m!VBn9xjdE^oYD5;l-wZS ziFX&t>K|mE%%^{-ZIqZY25&7AWtfio+o-MMPk*dU#iPZ%d4YyLasCmOLeD*{L9hUl zh5S2}9l?mX5QgP9v}jp$YJ;ZTwIh#}lt=P?D-StPLRh`$pVn9c3!*_)aS{DTTmRMzy=NNBO=V zv}o{C-Z%CY097<&n2`ECV?p^)ZIW0c!S9%fs(+^?(E*8J!ZIj#aEHt=r=s4c^bp=( zpzbKtQ60FRrMNoHDcR}e4~+LywaU)WrD@t~20@{a(H~XCgD7slsHtQ%F?~3k3`T`E zRh(0~F2doF{Vpwzc3#wq$bMd%LXSl-a9GN<-g;4}(7?A-&2nvIdwCGbqnV2LF^5TS zxVWI-ho!pR%=!Q@j(Qev*9Kw>r)8N&6&ApjQ_$Q8(yBV6jn00l4WcZK71KuP>uJ?X7?o>|$vr`R(uUHKWq9x<3+qMRD_UQAzR}p9ez36X%q97w%1S1Uy(8a7 zw!_ABI(EcpmTcrojOa^8uV|xbi4|?6=xc3AVseH97vIo_yxCk-k~gLx&sJRn`$F*W zLt+z`4N`^SG7dUFiP&1}!^PDb;_60k3`20oto&+=>cd&V5euPb{D){Bk$U$i#dmko z#Y1d}2zy77eobwwm~Ho9c23v~t=x-|qDE!lgHNNC`!(>$BH2gc07jWX#Sh56DYs1i zEngMGssbc7Lk$@0Ql_B>4bvUDGSdeh*zfCbTxG{;Uvrf*I6FXZ)GJC{y;nj55Tp}N zD)a(9sngOt(8&zx1;V~K9ddW@wCKvD=HpV5)tmuE1I4qV)(03*iCm`2(En_H%iKTi z$4O^H*1Zx*Bf4wNIM|OHwh5D&Tz+3q79*!lN4UEZBK4Kfcdg8V;9ojq3n5tRg^;}$ zo{hXvh(`)g{e)7r(+!J{Gf}3SEbfdfoX7?93+&h4H#sx2%&8vu z;&TFZCR91yuv8Vf5h{IfZls6%{YFBO6BNf(q0A}%Qn8}NG?|sCQNa*M(8Fn;Um#IP z=IZGnC80tO%B2_H*V2V(sQx^3se}K6>?=LLS-NqwNEhKj!O-CMP*qHWJXVuvEe4~jUG3LcW21N3_Emt98%N{X9mf{e!|Ce9+5jV7N`6KGgp z*2^k<2l@vP@rS1LWl7P(oWKin0-?pIk0r15WwHH)sd*(lBS9S);i;&UG;b!b!~NcS z@*rKyS0p5cMq!Mg(^5e=&AtIiK2C&)}w`}zZjO%Q65l<&7|VP5czufH_9N| z{kCXNZ4>fGm)gb^LQbb%SAML`Srkwfs~MV{kpl5uok8!)sinn@k-du?ouAMx z;sX!4a%?rh2SW5M*cQ#M80ON=E?ogtvvdb4AMKJ_?=;3FbOB^hPHhlKPO3l2p|yJK zp&LH}h`hj;mOsKSy0$q0K0RM^dC48Jw90`r;6?7D_Z$o^(KEA$&5^eHEp z+wf_Lp#>g6#c%XoajW5l!ZG{?!Zi*Y80zh`5))e{+N470h0+1$g-GZ$1ZteN4d zuJX9*6WoHomuM@z1L_G0=8z(T$2O*!cqwOO@cle z%!8|{XH?hE@-C?BoMv(sgwtU?@>A(f3Z;vAx+H&MsjZ}NvOnb@zY&eQbK3FNYX+=m z!k^^K1vQ-dy-Tjv*M zq-1-O?T`=nse&o$;yt1M{qQY7?T4bmmVy zF3EF1xLq36s8EkbBXQDhQ07vtJ?aqIugWSvVP_c;>N8M2#}=bmJ>c*~@f}&LNHK!n zfWGyYW_Bx8Zo`J9*CFf_Z}YJMw6RiBv0v)BLF-SKa-|-*5GYQ~7QVsk(6fdY7kE^F zKNARo`xp3Ff?^ei^)S4UW7PuJBR~2?zD@EC*a?Nlz-=yegK!;%ISe*P`fo21NQWEj z^vqOhTLNoj=VjPop8M8l1Q=g48`c1Naasn}v6)ywrlmqWLbz0M`KLfJ0m4s0V5tSI zZ7B4#n~!3j0Euz2AVd_Q+?@u|+HAmwYi%r_D>BnCOJa?NtRXZUX~+WAVQ;7uK71e| z0`Cl1M8bQ7SOsFT#PStF=oy}{S<$ti9#TYgDM|i8Jn#{co)a-4>PxpkkeKk|-Po`~ z8_}IIyTX=Z3qCu$BGK$Od`hsnZ7H)GDs*+2AdTNO&%JPdU5Y>UjM)`|H|e3l=Mt)1 z^Sww?%*A4bk{vn2=}=j{+z{uQB*Gq~D;=N1>2FQdlLLF`v$;S~%bB zU62s!`bBvqrDIDW>7gqzb;KH)(gZ;NOd7u^zN;(*bC5T0Onf3@#@ELObGHaNb0Dls z;E>Zn783DgBBTm+B7n3E%s^=wPJI?jYV$CkMz zzjMDjh(MX`)sSZQicJ@`nvj!+!Vf-SYnknwmgRs4E4ceYr^rToa%5pU(cUS-TUYr1 zL*5)5=`aQ{LucM8q@j^@@X_61Ip?gwEDuepmH^^iKZ zH-N{~Si|1o6~AIn$cf@9r#b0cWommu&Lt38`w4m)tWw`8U~b7+hZo*Mt*z$kxxJj>N~gzl zX2zeM!=_2nz0_O?E*yYvQlOJ@!X5Pp2cU(}$)FKQY**SQLxeM+i(~M@$WL;xQs1~05|985(y@CYZy%G9-^AL z80y$x!Dx$JpuEc$u4RofSUM{YgHt5qJXhz7Rt;z8rvDQ^qAneL$00HOEXO<7kZYAO zdDqUEvVdXc9y!9JUsF6zuJ@!_y!soqQi*V9WFvADxlXG$Qu*DM9sI;emWI2d)oq1f z%*-(j+FfATr9|Mc3Gtqwo?l57eAXHEq#~`Q3z3SGXPsw9LC_)F5|)dTIirOae!#$k zdXkEN7XjtC8%6)xMbN-2D~Pou>G{ zf$gAe92+Pgg5Ft@qju|`nQla(G_TGZ^vfW&JwlY>^W~;{=+bd^JFR=nx|Wxp zWt(JZGKAsV+zH>7aD34g;Nu2~1K+b!)Ug|Vy$bO5})6X0YE06!ZJ__=VvP74ZjM>ycCmM-fGr%P85n70_PT<%?O`UezwWs&`TC9P2Cmsj1dOP!=6$sT16oyt^&06Kc5;G-UDG z-5t>F>4Z)%P9Bc##c*_bb?*&FSB~N|-Gt&a+=QN=q8=&s_2wgHSr$p=KcH-5I+pG8 z$iO~wjItcvwKxWJuAn9H<6`XFPpxNJ3l;5@VL13MJM7O6Av>GJ*9WNe7B(KtEe7V+ z-Ig~*19t0|zXvJWW4%Plb4-KLh;`E$1r(XnERK>^SWl5%wGc$=OeHI4$d+Hg1 zF(;^4FqqJ^kJHZErBq(-6D9RWTG=Mmi}npAsW%_AIAj>+7r$z{3v(HpM`-1xv|^VD zwyK|?Y42HP0dwhpx@j`6c4{)Ob!_K{I#kTzt}Et9c*PtIRZJuw*J9Z#s4-#vaJy(W zeFDwq6_nl^-M~B130_-AcyD%q_ouGmoeYQf=McQ$Fmb9Ayz2w-UI)ClyMgykCwQkj z!aLIe9z0ldHA=i24)0tic<006>7A}`0Nz`G_kK6Yihs$ny`Y8r*RKB}DC&uleT?`oS1=uVto$nd%XJ`1*#VaV$?v0|R9~bGmh%1hei7 z9#d@70noH7n_~GdmRV2hw2bdy4QqnU znrbQK4YRCE73nG!FSeZJr`K3x^%&pt;-!}P5}&))x*g%xALZYBWXvbFYapn(z7ZJU9B@-R}N&W_EUFb}sQucw%9TgqZaX69GVMLa_Ol09uBGZNtnKX#VsDVWK4D!||0L{r5&?BLA&KafcprPg85^?mp6gqA-oD!Ys`yPwi2!f zaX$=<=3fZ53Z;?s3QLBf3A{Si9?L%yECq_j@d}V0$D_gXRUU;OOyr@0t%jmkco39~ z<|>?ch1bRr@jOGYR9NyVp8<(ucrBW z<1GJB+qJx`x8zv&R4(1Ia3Sx&;K(`Nk?q)Vo=Y~{-U6>nybA<8Y7WnthncAdi}e-R5EZ}a0U8(Br`HwMYQtw&H&*RmkFzu^zX4Xi6RqyrGr z*z(1IepWHZKkjpdu^dRLq)fp0GFCFf#}B#0*+D!}&mJiM8}n_u)ge3)Z2x}TQ0#`= zLU^-W*uun1*gz7O1w%;i;}x*7Cd%nbdD)Tlc5C@);+6W1Ynu8_e$QFMhimxKy?PAS3Qe~C55O&!E&&fbHB1AHtbu4g8`+F2|Y z>p4FLtb^g2V~aLtKh1!Vya+; zPI%~c7BOJ520FbV9U4_a) zu25`oOq><$8r<-9{Rfxjiy4AlhiieZju>`U6mZCT$u%L(DNKmGAYOt!?}>q|7&G%l zeFj*;HkYaJ)LwgEeP^)h+p`5gg##th*$J&p?r;Izkg}`M}(?cz# zjk-)r<8ae|>0==d^O4HB4dmC<%}ppM6hU}>iPV(gc&Btjk^Lpd{(k?fWja?J-&4CE zA;FYrL#!a(5Zv(-WLJ`EqNht*$}qW!RF&5Mx1uU|PL_THt(xSrm*j2m>S@)2*43nw zY2R8iaCD&b2Ir0vU`w68Fublb5T{j_YHKVIH`kN$nC`f_sgP+APb4@jfnlP^Ur z2v}x$!SzfLh^=}`r)iAeplF#C1VP(G5rkEdyx^xxq6-GCka{v$fl_~ndsCEy;xbYt zY}7{zlI7}><4&jNaM(f*vNyaxHg%~cIgXZp?zzngivi)>3IU%>qoFujYGfPShjcxH z8=s3B82O3RhNhAw=?vqCNvjFlWAGXxCE=oIX|7-n@Mo)I#Vkbh=Oz@f2H4Gdo*1qfKxOKOd`)tj-+5_exE2 z-;nCdtTr~tkQy+_W20v+jNU43VKVWbd165q$&0y}jKpM_L*h!^ zp5(}hvVr!65kE_tRKE>F>Pn775H&@0+u_iETCL$Q|1)WhOl~@>g3+H4cWrH4z~Ruh zv>5y`VZ5}8Vctk$Crqv)-Q00Yk`Bt3WT`$mT;O?CbjRw7{27x2sE2A$;KRKk@*DX9 zdg}7eoK?pjl0wF-rBgn`Sq^yKxT{(fJvABe>W=C*N$W{HJ+_bc*k77Ct;#z8zhRqiGjZ65tZ zAOux&)?eFN_QugOR*jsm%rE%4z&*$}KH z}a(l*FL0&uiEf4!GO(~E5E99>@YYlmw z=yv`xS;OFw$~A^{SIbuzYXf=R?AOc79UJLcwZzK7^H% z*Q5Vsn+?6l_mRt^Ul}Ed;_ivccA}rjFDtAOZoVNmW?IzSMnlPQ*Y_D{h3CoGRjEN8 z?fF9Xwc&N4t2cU_l1l|7woy!btUl;*Mt+^)%J1cAob?4SMY)B9u&iMH(4)}(YS$;P z_6IMQ(j6o3$~l4!K(8{&ia)^sfysxU&t)_BcbRPcASkVDRm0>eN<4#}y1Wzvxbh`q zgE4Q3T#jKyS^1u`A&|FRZicOBsR}j}^OEJ^3}c;2I%h9K-WvHM2oF;7p{K9h3c`bx zuJ-i5mDftn%WAIHSaRI*`Ip%y<1fC7#%0QJuxRkQL(zEnK;-~lXr(j}Eas^iuEc&3 z%6`s9xK-|ny#TTowK2D&(u1*BXkAu5X`702WbhY~1$oP<vFW7htOqLA}!+(}DFmtrhm$3;LxJFK3|Kw6Ogn_&R&rDES zNg5~jiM`5n%3J-R<_&EsIUcvRp~c$U$fSegLnX)egZ>5UFYc|95=(6IpK;7Krr48c z!qKyg)sO)pPq5V|4zm1}NL$8_Vd;1BY{(iyKcmme&4Dz^7bckUT6@+1YQG#05$9wI zNM8x^|B~vL76DD!Xl#pMtzGwA!OD%j0qB zVr3>{uV6tBr8R?=6=|fb2l7hPURQo&Y$`;2Ce!x5T=`Pv(?h@-DeuMX!%A<#UQG>& zh=#&#jJCfPA_fZYFash#<5>_{j!9|bDYnXLEq0JIeUZ@=<~b`t@n<~X=~JMm742!v zfc)c1Z##hNL$UG*IS@Rm@M`emNm7;9a7cSm!tn09iU(&iA#XRCpnabxpEHbpU)jdk zEXdep4aA}6m7RjkhQvr`TS(kvg+RaJljRrOiKlmtq|1sU8w+DU|xDCwIOlsfOHKa(vY~Cwp|T zTelWczsqyN$LBM+xJ3!U@OtWPmfEXEWt+h(z+vj?ZIh0?Z_TY__FgVNErN$;+rYrRXA5ztoZ$7S^w=eoV=^oQUsUW~sq*FJMpu z^%7%iQUhus9t~DI3$`{jpzbBS(par4SXyd8P%&Iwq$;VILqEdf&DBndMbVRk|G{!u zXUBe8eVf&+S#2c8jaiU%MO~%Rc-ylowT7Nk)bZNp1GQTbZ~EDfhJ*hrYO%B~dt}SB zcIsm}h2C5baX#$p13of&z7JgGSsK@VvnRX(Qg*0?@OZGR57v5F{hYInkWra6hj}sT zWh@h;mfBgmq`@ks21lxt8r%e>T`AN~?4S?EgJae1YT8t#0#=x+{vcR-YQZc&=#fRK zs`E3{rh;XpX7r{+!fcfi30qSO;wxg6MD=UIw&AKMHG$)_#p+6#y@@wUStX9~KdGY_ zEL^3|V>@8D54&f>1%f*sx|T9-kTFKB0r?(0{7_Hs6i`x=+`{ljY=k|BEGQ~aOYrVt)kCms3^}A; z|h5{Q&zRlEyG7J$p4W^m~}#>o$%B< zYJjSQ(Rze&ND5HK?MJ*t?;nDQ+iD&pTbeh9?@-&)E;Pgyf?Y4DM;PVdZp?ATLNcft z#uchgjfLZ!E9!h9AEc&7AmyIg3Bxa|-6$*^LQ3)vp2fqK`h;`Vb#)1Q8$u*)3QjLp zlT~esgB@mF9aAVHK2j?PX-BB$kAesxqe@hXq4rSym2*~rH@;W5F??OqmQXVLvHB5b?_l6Pm9n6u zTc_| zrZ6;mXb)(lGZ=M7JHqjJZ>@0?#*YXAI%hqU>I@tRdUg-XP=*jPM5PnH(giVKP z=g7VP05X<~3QxJ!6(^6>*3c9$Kw2klJjB=4hGKMQEmYWDUBr;rHSz*z;N@<=uMk33 zY8epumF5Zgab_Td$7?Q#e@lCeuSIEo?stlC-agHn;r_nbckUY>;=F9FJIBbG+5y7* z5wP)sbajI^7GD~wO%yv4H7PC9l2ta{Ay%{L6u*sUYR;SvlH=QXws3bqxG;{T<_A=T zxGmZ$gI&(A-JV3B*vEeA4xG;u+K(~&6Rj6zU4K&a)bxoGMlaU3(t!WP?5mo_ATm|Y z0#{k>4hH)kq3S{5V_JRK+EglkgX}_c2O6_ZE@(Fm|GlHP_Ywb0Bdb<7UXH39yze%Jn8jM>%o8VttA>IR%h)OA>OQA@Ca<|wQ) z#2nTp>+Ji(9Xm;mQZJi*ZcporLsdJHSJ;J;w0a=r8TP9I5WG;EX8Yuy(e?DpS4i^e|_S6PLdZ`}%|Id&j zb_e?g1LHMCz_p=_&Z72ex9ywX!oGdlH?~fd6ZYoxUGw0P5H(QqLC*+%DEWLUX$%n ze}s@Yvm%m`e@jCB6OWtCKS6=esiUg;Rv=KlF`yY~2^4P8{UH2Ty}C`xK;Elb1d#GK zvOBvC1*#r~?QUs#v<^#gN|oyWoo zdPA}|zd_U+PCt7EBtJ8k0LPc14`!V z$(XoCYeu3PCCY>UR^6?8kFaDuaV~AWwhs5!(FZ8P5gLmjFKHVYkWnj(2SfB;oKY61 zE3HkKJW+cWhfdeGlcs*5Ne~INP?LLVLBs(PCVQ;;LE$E+kG&v+p|Fuz3Ff_TdO?p~ zS_%dY)o(K>(^4;G0tXFpn8tp^77YPdcYrWvdExHGUUDQ;F94#z( zFHsN1H^cQ|f+SQpnA&3aSY2b-s-ymeOi{RhcYVC1p6JsJS9I4Cgu)(EUmC>h)qQZt z3O$4W$=$}bXt{1L!Kw`6|D#QY$cHqOta{pD%5iEgTeY}hFUd0Oxv6ITb4H`>H%*|m zSJ$4~B|)({aeWhfJ4as)?{3n6$Dk4VB_=ulTzcNPFI}hjV)7V$EptK4cu@|c7wPF7 z-yW}bktr8>wT?zCBF4Y=95f(kXYBF3pkR&ei;3H{FmA)!$#|I%V6g^SdLR{kk>|_Y zGb#)FThikAOT(8lB$Smo^G;h!ialqGz5pi2>I#wp>>!vAl#U~RJ9-;g*~uSit8w2U zH#-*V^A$>PTwksS2-$<+RKS#%w3h!0+2-bKH@AK1Kuja$d{KFFC`%dGiw=;huG4SW zS;~m}dTUq}svQQ;{aOn*Cy_YWhO3oBf*S@0hu8qy3ewkuHaGkr;t?Sa7%y~8-mY&@ z<(`t`QJih1<5NpUYfnWFaV~8u*=A1V1Qh>eR8f3zQ?fIb4i|HD9|$hg%Vn)i*L$6|-D)528<-Low@!-iNblm|f&l$OA6bEudq!OE`J6b2T}~A;vP~iiwg)vv0XG!~)8{gsP)y{5i zhSi4bi+VjIR38ae2Lf`8MR0wpF%3LC%u+WHARtX~{>OR}V=qC(4J{OtXBc}J_&3wb zLwX}KDs8>d%!W0~-D6$IxNF?85g8)4SeGb|;OIx^osNFw7K*9}YERK+{cJGMMOO150((TMd z2peI##Sx0(7jz0I12TB)v80PRongS6rtY3;Gl)K9 zOu)E$#u`C^Q_4((c93A>xSDoFwP$_a!J9bFQ~Z{%9_ZRfa(wN(Hp!TnT3pr#vd-uV z1O=K)VSgVZN@|%?ulJ!j#(PYrY8T!LLlzt7$OUd-X%KYGtc>B&W+G)PHkm7InYYHr zdyPB>a}Ss^F~5#^n0Yh}wsp2)aHC)TbY4s6F* zLn8jjGJE7;kL<(DyW~&C_9cI^+dtTY#Gbw^HLF`?TOA_k>VkQ)8NuQ92l{Dvxwcsi z8pIiwSy#-{>9)O+j=JU24Wc&ivKYVGNG5gfMp6zRDl`n5ZcrTF9rL`*rd0f})C|L! zGmWK;^?;%ZnlFS+mRmx6y!k04hMEm9dX6z!r7Y&fg+{QDJJa})n6S%OMHWHzgREsn z9~OlPdkqSbqN^LeZa}zfg)xJ(-Vjx!4}iUA4GqtnH7atv9bu3X?MpTKvpx`YSzltK zDI!PpsJ;M;(~N42^@XTU^fga$EvEfFPyZWLEBtYTQH~Lygkv^{Z`E=TnPd#eO*f7x zG6gRsUc^4zVdMjjH0w_Xfz$rMPFvf$*qrP|*Ff84+y~Kj)p{7e#HeNm6nqdA4RZNG za67ZmUKZ!@*gm5ZXM=%#@2rCHqs(M-K4}?1vdcIF&3`n8*sX@Z2iwipaLz$vv7LrZ zDmCVjghm=0ps<|rrTxasm~_v+nYn^aR)U+G16gjqL22IMP*9EqLSk7@1Co!KkD!o> zOjcKOL2*s|1Rw-u@x9YVD@NJaqAh076Ll>9&Ik|?`4L5yb8i`T0SAwPj9l`+ zGjADD0&Yhe>+G8&Ao{3IC-8*^oxsP^QHfbX!n$DApjAgj4^^(|%PD#OU!yN&V~eKB z%b+;Xm=2pB8jEq+CkDkl12Lu8m@H(w7H&*x;KtCj!7gvREXIjLzA|zPNKhA1CYB1mXdYE!j4d{>25#0*fTB1v2*XRAl+6#0 z6@@rA!+F8o*F*>$XLPbrMnUvR+9dOP8Zk&1m#Oj~$?@we|B&*NMMD9Iao3i$UECLk z5sQtA46DfI*PO*8tsXCK+qq&lY6$3Hc7~FJI#ozH>>{mf<0k%OnLdJYsb0P=A4vDr zYv8=;2Dv~Tz0BjBy#nkbs^p4nY<@@qQ$LDJ(DXIesWNHH zFXjti2QY2=+x@BCy^w!Av(@!mdkS{>;;WF<%-DuItD8dw4$`~18XtdfEnl;?an~6#7jr$D4-f+_LYqQk+*akQY6THnT6qNTd`#{(f zbD4c}HWU<)0+nxO-cl)RTDr@iGe#Qmg4?H=2Sp#~jq&&#vmM8hI%L!AHi=l8WgO&B zHcbC^MsuK%H`q^-py;wr`O@wt9Zt-L>}cVQWO3%uMjmGd|1IbvHi-Ug0Tf-;H@gSt z;8}%YtK61mSBPG1`a$w8F69n1cPjEwI-+@TQJ=NBLRgZj= zPHUn!aQn1|FM$NqpV`KaQNHXp=~ZF0LC%bWFGV&?Jf;j&>603t77PZ(nQu{5BO4() zGVGdQzM;x5OO7Ar{Xv4P{}&E_b^(jXz;SdD4v<|MnYF=49le z$7%9#$#K8QKNw3%S*`#Ez4}>Uwz%H}R@MqxUCqM8VCxb?pKIn%jP1bEwU!6f z`6XHwL;o+$uOzk$=hU&tgxghte|JJDX$RkpNq+XDzbfa7A>axEpgKv) z<2!gR7Br;0Q24cc4}Ys8>N2PvYHiA`ZjF;<3heSb*j>3d?!%iajFKG3nmp}0k&1LF zCCiUIbB-2Y!jmbM2()~G3Nqc{Fr{I~SQoKMf9nfo*JqNt|0M*sps7-Ff^~6imQwQx z03-m{WX_NOv)g8rNo!+KR*s*rJ0!1 zYHf%W0LpkP8W#?vdOgnHg_tCZ${dGU{YY@{f$JsfG`>I5YDUk_z{S0+0{&P-G^Yf{ zIBOs0{4B6dW;w_|O(%iGWI767I?0-;%5?Jc4f%s4D4*TBR${}uyl>)@oMK(rC&U#qG@$o&*$f*6PYN>9$xd0hu?MDxJ zMdJKWYXwu@UxGCiy)pz(Xc!Bnd!=O1BILyOLJ^tIMQ>gW7nO)OG!H`xIV`ADqYa;dgX=-2sIxOpJ8Uf#3jZ(l za}}jy)+1_t4HGY0*BDG}m97%Gyj# ziXri;)ez!axSGP2Y^x_8J!3U8*d)CDq2<98P8E*)ONcpYm51b&6qhBpV$<-wOIAy2 z`xQ*OYkh&=T(K(CudgAqvTHODP6~g*ok_4N%oUBpu3Fn^BHuvv4^}ViQ*33@tKUNY zC8{?JxM>wrl=G!E5vPA+{UOVfCC87W4&88?92fj#&0;Q2rIP$+u=}rJ2t*yV_CWXv zOGi2%Z7T%-AruncvC6^z|5`oV=deiUu=Jh4_IuVa8ub=LO&3&4^T4{PN}oC$pHe_r zD0X6;7wV_7s7p*!L*|7ofL?^Nu9>I+!md>^+$JW@J2B-5NBl&)w1WPc-OV z$ZqRufo&={Pf_RhfVFW2W8=!s3-s$gB;=9HQX#;3lYae@no*8iqw3Bd=*I&fd6t7e z0-gOJn7%Z?d9|Gj=>9_}Nv063M?L2eRT@Hp0eV?#6c<$akHbQp>CECk)2P4Od~DJb zGP*mfK~{IC(>`XNh}gp^(c-vc)q@J7oYR56mrx+?W9ub6G0M5ny~_T;jCU+rL0QX% z0pa_s{`lKi=ldkP7D58zM{_vZ*GV-A4*m#B`#K}Z=?GQ^Ly@Erx471;_Hw@+7hd-ci!O4!h{(HvFe4C&05Bt zjWO_&u~LA?Nqv&ty9*K$DZmR377`Y2cZRCcUivPEw05gF5i$)k_c|kmY~%C7h>Dz| z0_%wL7fxrDNi|JMN8O+*iWBcRdqey#wGNg)?!3iWStxizEyPRt&U$|(N7~XCO^&uC zjZovz&{xTEY29Qehk_|;N4Wi+>SZUesA^!-7tRq(^2w+-9g+_@^JMxGhbmq(GM#iP zea1R*O9uPCYV2jZFUAh)*anSixEZWS?av6C>yE%)UlCxxJvA5 z^crk>;2bXn?i)G-t%uH^xlG?6iK@T?1y!E+cD;h>zf-=DRfD2gA_!JRGty#H_#YbJ z+AFAB&hu@nF2f+%b%|;fq39f?#)5a#a-qugez;O|O;f2P@!SGNXXBnOIvb}Wg$cwc z%U8?>|98YSoaWK-VeG>Y-HK#Wg98DtJhvM=|Z#b@YGNZ^q+< z2Cg-XzLRs%WFktepr=NBFO~~&{YddsEoY!@RnFn<#x8F=qZiTAl?RF6E2AO4wW}G% zGO{zBs#JvHvsQQe_RIKQD_58*(MNCgne$j{|0}a3$JGf<9@8Hbo#7#v+1^FE zN*{`eCJ@tKsh^YO-S5vjh+MA4+Gd52#(Y6>eB4x5icm*{Qth8;3NiDjekl6BD-#PN zU5x~5mRi({(oLh)YS?48D@UlI4JpwksOI}F8;N5Fx;6@`UA)msG{$B_UFYnw#em1o zHV}DTabmA%7bPQGLDUJ2>VY!V?RaLSs|_96P`MwmFPw=F%-PsulIsAs^M4{NHOYGz zedOiJuyb`u52zp@;Iy-<4UrO!5m=C>l9w4CPku)HEuP3^Y z@ic;;;U}g~am6y$^##1$sQ6I*1h1yMY6{l$8U6Xz?>#bd`^?YNz@6Mb@$ychm0@))rVl;uH}82y_ofNF3?X^0b2*9Llt%rlfM=~O_F+&k$hC`(`#GJ94R)PTbvmSvb4>)&_P($xN2N-XQKaL!ng?b7M*j~58uNkzjeTC>$2~8Z@&7KF3C~Jq z;#0|J*tNRH5y2)sE1B9JKWlXM_(X9=5&z=<2flFy+-&J z{ttYMUck5bd3^tQ9v@W({+mHt`YgWJpT*}k63bq|C;f?U0pVNuKR1L`FK!6QFKh@Y z|Gputes)7heHP!EXYsi$!`f%@o$)Bq6xlWaWZ!K|YmRJc?*;UQu2_eqH&qHKk{`In zFxt0XcN?+wz)m|O>`kF6$1$IJyuqlZ@5XS|KkbCt6Rzu?&Fv)*4BwVLL&za|L`9le z*FE}(jUja)u#@VKRW#4f?DVssI=@)87DOhx`r^E=JQmu;eo?=>uHt8&p8oDPHXn-e zn8a{`kLN144cYP(doAo%;?Y*80^gMnJrcMK)Zf)v-9l zHVB+%c>igAial`pqF=IgQ2buh0WiW>{oVSgDlq`hM7K|edzISpt_%m_P*=8.7} { + regsub {^00} $permissions {0o} permissions + } set effective $permissions do_test journal3-1.2.$tn.1 { catch { forcedelete test.db-journal } diff --git a/test/like3.test b/test/like3.test index 575faaf104..622f8335eb 100644 --- a/test/like3.test +++ b/test/like3.test @@ -178,4 +178,56 @@ do_eqp_test like3-5.211 { `--SEARCH TABLE t5b USING COVERING INDEX sqlite_autoindex_t5b_1 (x>? AND x? AND path? AND path? AND path? AND path? AND path? AND path0 && ($nChar+$nNew+3)>75} { + append ret "\n " + set nChar 0 } else { - append ret " [pg_result $res -getTuple $i]" + if {$nChar>0} { + append ret " " + incr nChar 3 + } } - # lappend ret {*}[pg_result $res -getTuple $i] + incr nChar $nNew + append ret $t } pg_result $res -clear } @@ -61,12 +70,28 @@ proc execsql {sql} { proc execsql_test {tn sql} { set res [execsql $sql] set sql [string map {string_agg group_concat} $sql] + set sql [string map [list {NULLS FIRST} {}] $sql] + set sql [string map [list {NULLS LAST} {}] $sql] puts $::fd "do_execsql_test $tn {" puts $::fd " [string trim $sql]" puts $::fd "} {$res}" puts $::fd "" } +proc errorsql_test {tn sql} { + set rc [catch {execsql $sql} msg] + if {$rc==0} { + error "errorsql_test SQL did not cause an error!" + } + set msg [lindex [split [string trim $msg] "\n"] 0] + puts $::fd "# PG says $msg" + set sql [string map {string_agg group_concat} $sql] + puts $::fd "do_test $tn { catch { execsql {" + puts $::fd " [string trim $sql]" + puts $::fd "} } } 1" + puts $::fd "" +} + # Same as [execsql_test], except coerce all results to floating point values # with two decimal points. # @@ -88,10 +113,12 @@ do_test $tn { lappend myres [format $F [set r]] } set res2 {$res2} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-$T) || [set r]>([set r2]+$T)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} diff --git a/test/pragma.test b/test/pragma.test index 1528984654..9257ce4ee7 100644 --- a/test/pragma.test +++ b/test/pragma.test @@ -251,6 +251,31 @@ do_test pragma-1.14.4 { PRAGMA synchronous; } } {2} + +do_execsql_test 1.15.1 { + PRAGMA default_cache_size = 0; +} +do_execsql_test 1.15.2 { + PRAGMA default_cache_size; +} $DFLT_CACHE_SZ +do_execsql_test 1.15.3 { + PRAGMA default_cache_size = -500; +} +do_execsql_test 1.15.4 { + PRAGMA default_cache_size; +} 500 +do_execsql_test 1.15.3 { + PRAGMA default_cache_size = 500; +} +do_execsql_test 1.15.4 { + PRAGMA default_cache_size; +} 500 +db close +hexio_write test.db 48 FFFFFF00 +sqlite3 db test.db +do_execsql_test 1.15.4 { + PRAGMA default_cache_size; +} 256 } ;# ifcapable pager_pragmas # Test turning "flag" pragmas on and off. diff --git a/test/pragma4.test b/test/pragma4.test index 2810ac9359..afc7260484 100644 --- a/test/pragma4.test +++ b/test/pragma4.test @@ -174,6 +174,7 @@ do_test 4.3.4 { execsql { DROP INDEX i1 } db3 execsql { DROP INDEX i2 } db2 } {} +if {[permutation]=="prepare"} { catchsql { SELECT * FROM sqlite_master } } ifcapable vtab { do_execsql_test 4.3.5 { SELECT * FROM pragma_index_info('i1') } do_execsql_test 4.3.6 { SELECT * FROM pragma_index_info('i2') } @@ -192,6 +193,9 @@ do_test 4.4.3 { execsql { DROP INDEX i1 } db3 execsql { DROP INDEX i2 } db2 } {} +if {[permutation]=="prepare"} { + catchsql { SELECT * FROM sqlite_master, aux.sqlite_master } +} ifcapable vtab { do_execsql_test 4.4.5 { SELECT * FROM pragma_index_list('t1') } {} do_execsql_test 4.4.6 { SELECT * FROM pragma_index_list('t2') } {} @@ -216,6 +220,9 @@ do_test 4.5.3 { execsql { DROP TABLE c1 } db3 execsql { DROP TABLE c2 } db2 } {} +if {[permutation]=="prepare"} { + catchsql { SELECT * FROM sqlite_master, aux.sqlite_master } +} ifcapable vtab { do_execsql_test 4.5.4 { SELECT * FROM pragma_foreign_key_list('c1') } do_execsql_test 4.5.5 { SELECT * FROM pragma_foreign_key_list('c2') } diff --git a/test/printf.test b/test/printf.test index d768898fb9..d099da8fa2 100644 --- a/test/printf.test +++ b/test/printf.test @@ -540,7 +540,7 @@ do_test printf-2.1.2.9 { } {abc: 1 1 (1e-20) :xyz} do_test printf-2.1.2.10 { sqlite3_mprintf_double {abc: %*.*f} 2000000000 1000000000 1.0e-20 -} {abc: } +} {} do_test printf-2.1.3.1 { sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 1.0 } {abc: (1.0) :xyz} diff --git a/test/releasetest.tcl b/test/releasetest.tcl index c520a535c8..d216d2a08d 100755 --- a/test/releasetest.tcl +++ b/test/releasetest.tcl @@ -501,7 +501,26 @@ proc run_slave_test {} { unset -nocomplain savedEnv(TCLSH_CMD) } set ::env(TCLSH_CMD) [file nativename [info nameofexecutable]] - set rc [catch [makeCommand $testtarget $makeOpts $cflags $opts]] + + # Create a file called "makecommand.sh" containing the text of + # the make command line. + catch { + set cmd [makeCommand $testtarget $makeOpts $cflags $opts] + set fd [open makecommand.sh w] + foreach e $cmd { + if {[string first " " $e]>=0} { + puts -nonewline $fd "\"$e\"" + } else { + puts -nonewline $fd $e + } + puts -nonewline $fd " " + } + puts $fd "" + close $fd + } msg + + # Run the make command. + set rc [catch {trace_cmd exec {*}$cmd >>& test.log} msg] if {[info exists savedEnv(TCLSH_CMD)]} { set ::env(TCLSH_CMD) $savedEnv(TCLSH_CMD) } else { @@ -737,7 +756,7 @@ proc configureCommand {opts} { # specified targets, compiler flags, and options. # proc makeCommand { targets makeOpts cflags opts } { - set result [list trace_cmd exec] + set result [list] if {$::MSVC} { set nmakeDir [file nativename $::SRCDIR] set nmakeFile [file nativename [file join $nmakeDir Makefile.msc]] @@ -758,7 +777,7 @@ proc makeCommand { targets makeOpts cflags opts } { foreach target $targets { lappend result $target } - lappend result CFLAGS=$cflags OPTS=$opts >>& test.log + lappend result CFLAGS=$cflags OPTS=$opts } # The following procedure prints its arguments if ::TRACE is true. diff --git a/test/releasetest_data.tcl b/test/releasetest_data.tcl new file mode 100644 index 0000000000..3afd659f99 --- /dev/null +++ b/test/releasetest_data.tcl @@ -0,0 +1,412 @@ + +# This file contains Configuration data used by "wapptest.tcl" and +# "releasetest.tcl". +# + +# Omit comments (text between # and \n) in a long multi-line string. +# +proc strip_comments {in} { + regsub -all {#[^\n]*\n} $in {} out + return $out +} + +array set ::Configs [strip_comments { + "Default" { + -O2 + --disable-amalgamation --disable-shared + --enable-session + -DSQLITE_ENABLE_DESERIALIZE + } + "Sanitize" { + CC=clang -fsanitize=undefined + -DSQLITE_ENABLE_STAT4 + --enable-session + } + "Stdcall" { + -DUSE_STDCALL=1 + -O2 + } + "Have-Not" { + # The "Have-Not" configuration sets all possible -UHAVE_feature options + # in order to verify that the code works even on platforms that lack + # these support services. + -DHAVE_FDATASYNC=0 + -DHAVE_GMTIME_R=0 + -DHAVE_ISNAN=0 + -DHAVE_LOCALTIME_R=0 + -DHAVE_LOCALTIME_S=0 + -DHAVE_MALLOC_USABLE_SIZE=0 + -DHAVE_STRCHRNUL=0 + -DHAVE_USLEEP=0 + -DHAVE_UTIME=0 + } + "Unlock-Notify" { + -O2 + -DSQLITE_ENABLE_UNLOCK_NOTIFY + -DSQLITE_THREADSAFE + -DSQLITE_TCL_DEFAULT_FULLMUTEX=1 + } + "User-Auth" { + -O2 + -DSQLITE_USER_AUTHENTICATION=1 + } + "Secure-Delete" { + -O2 + -DSQLITE_SECURE_DELETE=1 + -DSQLITE_SOUNDEX=1 + } + "Update-Delete-Limit" { + -O2 + -DSQLITE_DEFAULT_FILE_FORMAT=4 + -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 + -DSQLITE_ENABLE_STMT_SCANSTATUS + -DSQLITE_LIKE_DOESNT_MATCH_BLOBS + -DSQLITE_ENABLE_CURSOR_HINTS + --enable-json1 + } + "Check-Symbols" { + -DSQLITE_MEMDEBUG=1 + -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 + -DSQLITE_ENABLE_FTS3=1 + -DSQLITE_ENABLE_RTREE=1 + -DSQLITE_ENABLE_MEMSYS5=1 + -DSQLITE_ENABLE_MEMSYS3=1 + -DSQLITE_ENABLE_COLUMN_METADATA=1 + -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 + -DSQLITE_SECURE_DELETE=1 + -DSQLITE_SOUNDEX=1 + -DSQLITE_ENABLE_ATOMIC_WRITE=1 + -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 + -DSQLITE_ENABLE_OVERSIZE_CELL_CHECK=1 + -DSQLITE_ENABLE_STAT4 + -DSQLITE_ENABLE_STMT_SCANSTATUS + --enable-json1 --enable-fts5 --enable-session + } + "Debug-One" { + --disable-shared + -O2 -funsigned-char + -DSQLITE_DEBUG=1 + -DSQLITE_MEMDEBUG=1 + -DSQLITE_MUTEX_NOOP=1 + -DSQLITE_TCL_DEFAULT_FULLMUTEX=1 + -DSQLITE_ENABLE_FTS3=1 + -DSQLITE_ENABLE_RTREE=1 + -DSQLITE_ENABLE_MEMSYS5=1 + -DSQLITE_ENABLE_COLUMN_METADATA=1 + -DSQLITE_ENABLE_STAT4 + -DSQLITE_ENABLE_HIDDEN_COLUMNS + -DSQLITE_MAX_ATTACHED=125 + -DSQLITE_MUTATION_TEST + --enable-fts5 --enable-json1 + } + "Fast-One" { + -O6 + -DSQLITE_ENABLE_FTS4=1 + -DSQLITE_ENABLE_RTREE=1 + -DSQLITE_ENABLE_STAT4 + -DSQLITE_ENABLE_RBU + -DSQLITE_MAX_ATTACHED=125 + -DLONGDOUBLE_TYPE=double + --enable-session + } + "Device-One" { + -O2 + -DSQLITE_DEBUG=1 + -DSQLITE_DEFAULT_AUTOVACUUM=1 + -DSQLITE_DEFAULT_CACHE_SIZE=64 + -DSQLITE_DEFAULT_PAGE_SIZE=1024 + -DSQLITE_DEFAULT_TEMP_CACHE_SIZE=32 + -DSQLITE_DISABLE_LFS=1 + -DSQLITE_ENABLE_ATOMIC_WRITE=1 + -DSQLITE_ENABLE_IOTRACE=1 + -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 + -DSQLITE_MAX_PAGE_SIZE=4096 + -DSQLITE_OMIT_LOAD_EXTENSION=1 + -DSQLITE_OMIT_PROGRESS_CALLBACK=1 + -DSQLITE_OMIT_VIRTUALTABLE=1 + -DSQLITE_ENABLE_HIDDEN_COLUMNS + -DSQLITE_TEMP_STORE=3 + --enable-json1 + } + "Device-Two" { + -DSQLITE_4_BYTE_ALIGNED_MALLOC=1 + -DSQLITE_DEFAULT_AUTOVACUUM=1 + -DSQLITE_DEFAULT_CACHE_SIZE=1000 + -DSQLITE_DEFAULT_LOCKING_MODE=0 + -DSQLITE_DEFAULT_PAGE_SIZE=1024 + -DSQLITE_DEFAULT_TEMP_CACHE_SIZE=1000 + -DSQLITE_DISABLE_LFS=1 + -DSQLITE_ENABLE_FTS3=1 + -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 + -DSQLITE_ENABLE_RTREE=1 + -DSQLITE_MAX_COMPOUND_SELECT=50 + -DSQLITE_MAX_PAGE_SIZE=32768 + -DSQLITE_OMIT_TRACE=1 + -DSQLITE_TEMP_STORE=3 + -DSQLITE_THREADSAFE=2 + -DSQLITE_ENABLE_DESERIALIZE=1 + --enable-json1 --enable-fts5 --enable-session + } + "Locking-Style" { + -O2 + -DSQLITE_ENABLE_LOCKING_STYLE=1 + } + "Apple" { + -Os + -DHAVE_GMTIME_R=1 + -DHAVE_ISNAN=1 + -DHAVE_LOCALTIME_R=1 + -DHAVE_PREAD=1 + -DHAVE_PWRITE=1 + -DHAVE_USLEEP=1 + -DHAVE_USLEEP=1 + -DHAVE_UTIME=1 + -DSQLITE_DEFAULT_CACHE_SIZE=1000 + -DSQLITE_DEFAULT_CKPTFULLFSYNC=1 + -DSQLITE_DEFAULT_MEMSTATUS=1 + -DSQLITE_DEFAULT_PAGE_SIZE=1024 + -DSQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS=1 + -DSQLITE_ENABLE_API_ARMOR=1 + -DSQLITE_ENABLE_AUTO_PROFILE=1 + -DSQLITE_ENABLE_FLOCKTIMEOUT=1 + -DSQLITE_ENABLE_FTS3=1 + -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 + -DSQLITE_ENABLE_FTS3_TOKENIZER=1 + if:os=="Darwin" -DSQLITE_ENABLE_LOCKING_STYLE=1 + -DSQLITE_ENABLE_PERSIST_WAL=1 + -DSQLITE_ENABLE_PURGEABLE_PCACHE=1 + -DSQLITE_ENABLE_RTREE=1 + -DSQLITE_ENABLE_SNAPSHOT=1 + # -DSQLITE_ENABLE_SQLLOG=1 + -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 + -DSQLITE_MAX_LENGTH=2147483645 + -DSQLITE_MAX_VARIABLE_NUMBER=500000 + # -DSQLITE_MEMDEBUG=1 + -DSQLITE_NO_SYNC=1 + -DSQLITE_OMIT_AUTORESET=1 + -DSQLITE_OMIT_LOAD_EXTENSION=1 + -DSQLITE_PREFER_PROXY_LOCKING=1 + -DSQLITE_SERIES_CONSTRAINT_VERIFY=1 + -DSQLITE_THREADSAFE=2 + -DSQLITE_USE_URI=1 + -DSQLITE_WRITE_WALFRAME_PREBUFFERED=1 + -DUSE_GUARDED_FD=1 + -DUSE_PREAD=1 + --enable-json1 --enable-fts5 + } + "Extra-Robustness" { + -DSQLITE_ENABLE_OVERSIZE_CELL_CHECK=1 + -DSQLITE_MAX_ATTACHED=62 + } + "Devkit" { + -DSQLITE_DEFAULT_FILE_FORMAT=4 + -DSQLITE_MAX_ATTACHED=30 + -DSQLITE_ENABLE_COLUMN_METADATA + -DSQLITE_ENABLE_FTS4 + -DSQLITE_ENABLE_FTS5 + -DSQLITE_ENABLE_FTS4_PARENTHESIS + -DSQLITE_DISABLE_FTS4_DEFERRED + -DSQLITE_ENABLE_RTREE + --enable-json1 --enable-fts5 + } + "No-lookaside" { + -DSQLITE_TEST_REALLOC_STRESS=1 + -DSQLITE_OMIT_LOOKASIDE=1 + -DHAVE_USLEEP=1 + } + "Valgrind" { + -DSQLITE_ENABLE_STAT4 + -DSQLITE_ENABLE_FTS4 + -DSQLITE_ENABLE_RTREE + -DSQLITE_ENABLE_HIDDEN_COLUMNS + --enable-json1 + } + + # The next group of configurations are used only by the + # Failure-Detection platform. They are all the same, but we need + # different names for them all so that they results appear in separate + # subdirectories. + # + Fail0 {-O0} + Fail2 {-O0} + Fail3 {-O0} + Fail4 {-O0} + FuzzFail1 {-O0} + FuzzFail2 {-O0} +}] + +array set ::Platforms [strip_comments { + Linux-x86_64 { + "Check-Symbols" checksymbols + "Fast-One" "fuzztest test" + "Debug-One" "mptest test" + "Have-Not" test + "Secure-Delete" test + "Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test" + "User-Auth" tcltest + "Update-Delete-Limit" test + "Extra-Robustness" test + "Device-Two" test + "No-lookaside" test + "Devkit" test + "Apple" test + "Sanitize" {QUICKTEST_OMIT=func4.test,nan.test test} + "Device-One" fulltest + "Default" "threadtest fulltest" + "Valgrind" valgrindtest + } + Linux-i686 { + "Devkit" test + "Have-Not" test + "Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test" + "Device-One" test + "Device-Two" test + "Default" "threadtest fulltest" + } + Darwin-i386 { + "Locking-Style" "mptest test" + "Have-Not" test + "Apple" "threadtest fulltest" + } + Darwin-x86_64 { + "Locking-Style" "mptest test" + "Have-Not" test + "Apple" "threadtest fulltest" + } + "Windows NT-intel" { + "Stdcall" test + "Have-Not" test + "Default" "mptest fulltestonly" + } + "Windows NT-amd64" { + "Stdcall" test + "Have-Not" test + "Default" "mptest fulltestonly" + } + + # The Failure-Detection platform runs various tests that deliberately + # fail. This is used as a test of this script to verify that this script + # correctly identifies failures. + # + Failure-Detection { + Fail0 "TEST_FAILURE=0 test" + Sanitize "TEST_FAILURE=1 test" + Fail2 "TEST_FAILURE=2 valgrindtest" + Fail3 "TEST_FAILURE=3 valgrindtest" + Fail4 "TEST_FAILURE=4 test" + FuzzFail1 "TEST_FAILURE=5 test" + FuzzFail2 "TEST_FAILURE=5 valgrindtest" + } +}] + +proc make_test_suite {msvc withtcl name testtarget config} { + + # Tcl variable $opts is used to build up the value used to set the + # OPTS Makefile variable. Variable $cflags holds the value for + # CFLAGS. The makefile will pass OPTS to both gcc and lemon, but + # CFLAGS is only passed to gcc. + # + set makeOpts "" + set cflags [expr {$msvc ? "-Zi" : "-g"}] + set opts "" + set title ${name}($testtarget) + set configOpts $withtcl + set skip 0 + + regsub -all {#[^\n]*\n} $config \n config + foreach arg $config { + if {$skip} { + set skip 0 + continue + } + if {[regexp {^-[UD]} $arg]} { + lappend opts $arg + } elseif {[regexp {^[A-Z]+=} $arg]} { + lappend testtarget $arg + } elseif {[regexp {^if:([a-z]+)(.*)} $arg all key tail]} { + # Arguments of the form 'if:os=="Linux"' will cause the subsequent + # argument to be skipped if the $tcl_platform(os) is not "Linux", for + # example... + set skip [expr !(\$::tcl_platform($key)$tail)] + } elseif {[regexp {^--(enable|disable)-} $arg]} { + if {$msvc} { + if {$arg eq "--disable-amalgamation"} { + lappend makeOpts USE_AMALGAMATION=0 + continue + } + if {$arg eq "--disable-shared"} { + lappend makeOpts USE_CRT_DLL=0 DYNAMIC_SHELL=0 + continue + } + if {$arg eq "--enable-fts5"} { + lappend opts -DSQLITE_ENABLE_FTS5 + continue + } + if {$arg eq "--enable-json1"} { + lappend opts -DSQLITE_ENABLE_JSON1 + continue + } + if {$arg eq "--enable-shared"} { + lappend makeOpts USE_CRT_DLL=1 DYNAMIC_SHELL=1 + continue + } + } + lappend configOpts $arg + } else { + if {$msvc} { + if {$arg eq "-g"} { + lappend cflags -Zi + continue + } + if {[regexp -- {^-O(\d+)$} $arg all level]} then { + lappend makeOpts OPTIMIZATIONS=$level + continue + } + } + lappend cflags $arg + } + } + + # Disable sync to make testing faster. + # + lappend opts -DSQLITE_NO_SYNC=1 + + # Some configurations already set HAVE_USLEEP; in that case, skip it. + # + if {[lsearch -regexp $opts {^-DHAVE_USLEEP(?:=|$)}]==-1} { + lappend opts -DHAVE_USLEEP=1 + } + + # Add the define for this platform. + # + if {$::tcl_platform(platform)=="windows"} { + lappend opts -DSQLITE_OS_WIN=1 + } else { + lappend opts -DSQLITE_OS_UNIX=1 + } + + # Set the sub-directory to use. + # + set dir [string tolower [string map {- _ " " _ "(" _ ")" _} $name]] + + # Join option lists into strings, using space as delimiter. + # + set makeOpts [join $makeOpts " "] + set cflags [join $cflags " "] + set opts [join $opts " "] + + return [list $title $dir $configOpts $testtarget $makeOpts $cflags $opts] +} + +# Configuration verification: Check that each entry in the list of configs +# specified for each platforms exists. +# +foreach {key value} [array get ::Platforms] { + foreach {v t} $value { + if {0==[info exists ::Configs($v)]} { + puts stderr "No such configuration: \"$v\"" + exit -1 + } + } +} + diff --git a/test/scanstatus.test b/test/scanstatus.test index 778a0c911e..1b92ef3fe1 100644 --- a/test/scanstatus.test +++ b/test/scanstatus.test @@ -254,7 +254,7 @@ do_execsql_test 4.0 { } do_execsql_test 4.1.1 { INSERT INTO t1 VALUES(1, 2, 3); } -do_scanstatus_test 4.1.2 { } +do_scanstatus_test 4.1.2 {} do_execsql_test 4.2 { CREATE TABLE p1(x PRIMARY KEY); diff --git a/test/sessionfuzz.c b/test/sessionfuzz.c index 7f2de51092..1d0bee436c 100644 --- a/test/sessionfuzz.c +++ b/test/sessionfuzz.c @@ -830,7 +830,6 @@ static int conflictCall( ){ (void)NotUsed; (void)p; - printf("Conflict %d\n", eConflict); return SQLITE_CHANGESET_OMIT; } diff --git a/test/shell1.test b/test/shell1.test index f105bac5b7..734a21a2f8 100644 --- a/test/shell1.test +++ b/test/shell1.test @@ -1022,6 +1022,8 @@ do_test shell1-5.0 { if {$i==0x0D || ($tcl_platform(platform)=="windows" && $i==0x1A)} { continue } + # Tcl 8.7 maps 0x80 through 0x9f into valid UTF8. So skip those tests. + if {$i>=0x80 && $i<=0x9f} continue if {$i>=0xE0 && $tcl_platform(os)=="OpenBSD"} continue if {$i>=0xE0 && $i<=0xEF && $tcl_platform(os)=="Linux"} continue set hex [format %02X $i] diff --git a/test/skipscan1.test b/test/skipscan1.test index aca5c91ec0..6aaf5335fe 100644 --- a/test/skipscan1.test +++ b/test/skipscan1.test @@ -345,4 +345,32 @@ do_execsql_test skipscan1-9.3 { } {/{SCAN TABLE t9a}/} optimization_control db skip-scan 1 +do_execsql_test skipscan1-2.1 { + CREATE TABLE t6(a TEXT, b INT, c INT, d INT); + CREATE INDEX t6abc ON t6(a,b,c); + INSERT INTO t6 VALUES('abc',123,4,5); + + ANALYZE; + DELETE FROM sqlite_stat1; + INSERT INTO sqlite_stat1 VALUES('t6','t6abc','10000 5000 2000 10'); + ANALYZE sqlite_master; + DELETE FROM t6; +} {} + +do_execsql_test skipscan1-2.2eqp { + EXPLAIN QUERY PLAN + SELECT a,b,c,d,'|' FROM t6 WHERE d<>99 AND b=345 ORDER BY a; +} {/* USING INDEX t6abc (ANY(a) AND b=?)*/} +do_execsql_test skipscan1-2.2 { + SELECT a,b,c,d,'|' FROM t6 WHERE d<>99 AND b=345 ORDER BY a; +} {} + +do_execsql_test skipscan1-2.3eqp { + EXPLAIN QUERY PLAN + SELECT a,b,c,d,'|' FROM t6 WHERE d<>99 AND b=345 ORDER BY a DESC; +} {/* USING INDEX t6abc (ANY(a) AND b=?)*/} +do_execsql_test skipscan1-2.3 { + SELECT a,b,c,d,'|' FROM t6 WHERE d<>99 AND b=345 ORDER BY a DESC; +} {} + finish_test diff --git a/test/skipscan2.test b/test/skipscan2.test index df526b1dd3..6fa04d54c6 100644 --- a/test/skipscan2.test +++ b/test/skipscan2.test @@ -202,4 +202,5 @@ do_eqp_test skipscan2-3.3eqp { } {SEARCH TABLE t3 USING PRIMARY KEY (ANY(a) AND b=?)} + finish_test diff --git a/test/sqllimits1.test b/test/sqllimits1.test index 9508b5233d..9bbe6c7000 100644 --- a/test/sqllimits1.test +++ b/test/sqllimits1.test @@ -889,4 +889,14 @@ do_catchsql_test sqllimits1.17.0 { foreach {key value} [array get saved] { catch {set $key $value} } + +#------------------------------------------------------------------------- +# At one point the following caused an assert() to fail. +# +sqlite3_limit db SQLITE_LIMIT_LENGTH 10000 +set nm [string repeat x 10000] +do_catchsql_test sqllimits1-17.1 " + CREATE TABLE $nm (x PRIMARY KEY) +" {1 {string or blob too big}} + finish_test diff --git a/test/tclsqlite.test b/test/tclsqlite.test index 36063bc46d..319737426f 100644 --- a/test/tclsqlite.test +++ b/test/tclsqlite.test @@ -21,6 +21,7 @@ catch {sqlite3} set testdir [file dirname $argv0] source $testdir/tester.tcl +set testprefix tcl # Check the error messages generated by tclsqlite # @@ -41,7 +42,7 @@ do_test tcl-1.1.1 { do_test tcl-1.2 { set v [catch {db bogus} msg] lappend v $msg -} {1 {bad option "bogus": must be authorizer, backup, busy, cache, changes, close, collate, collation_needed, commit_hook, complete, copy, deserialize, enable_load_extension, errorcode, eval, exists, function, incrblob, interrupt, last_insert_rowid, nullvalue, onecolumn, preupdate, profile, progress, rekey, restore, rollback_hook, serialize, status, timeout, total_changes, trace, trace_v2, transaction, unlock_notify, update_hook, version, or wal_hook}} +} {1 {bad option "bogus": must be authorizer, backup, bind_fallback, busy, cache, changes, close, collate, collation_needed, commit_hook, complete, copy, deserialize, enable_load_extension, errorcode, eval, exists, function, incrblob, interrupt, last_insert_rowid, nullvalue, onecolumn, preupdate, profile, progress, rekey, restore, rollback_hook, serialize, status, timeout, total_changes, trace, trace_v2, transaction, unlock_notify, update_hook, version, or wal_hook}} do_test tcl-1.2.1 { set v [catch {db cache bogus} msg] lappend v $msg @@ -711,8 +712,139 @@ do_test tcl-16.103 { set res } {1 {a b *} 2 {a *} 3 {a b *}} - - - +#------------------------------------------------------------------------- +# Test the -type option to [db function]. +# +reset_db +proc add {a b} { return [expr $a + $b] } +proc ret {a} { return $a } + +db function add_i -returntype integer add +db function add_r -ret real add +db function add_t -return text add +db function add_b -returntype blob add +db function add_a -returntype any add + +db function ret_i -returntype int ret +db function ret_r -returntype real ret +db function ret_t -returntype text ret +db function ret_b -returntype blob ret +db function ret_a -r any ret + +do_execsql_test 17.0 { + SELECT quote( add_i(2, 3) ); + SELECT quote( add_r(2, 3) ); + SELECT quote( add_t(2, 3) ); + SELECT quote( add_b(2, 3) ); + SELECT quote( add_a(2, 3) ); +} {5 5.0 '5' X'35' 5} + +do_execsql_test 17.1 { + SELECT quote( add_i(2.2, 3.3) ); + SELECT quote( add_r(2.2, 3.3) ); + SELECT quote( add_t(2.2, 3.3) ); + SELECT quote( add_b(2.2, 3.3) ); + SELECT quote( add_a(2.2, 3.3) ); +} {5.5 5.5 '5.5' X'352E35' 5.5} + +do_execsql_test 17.2 { + SELECT quote( ret_i(2.5) ); + SELECT quote( ret_r(2.5) ); + SELECT quote( ret_t(2.5) ); + SELECT quote( ret_b(2.5) ); + SELECT quote( ret_a(2.5) ); +} {2.5 2.5 '2.5' X'322E35' 2.5} + +do_execsql_test 17.3 { + SELECT quote( ret_i('2.5') ); + SELECT quote( ret_r('2.5') ); + SELECT quote( ret_t('2.5') ); + SELECT quote( ret_b('2.5') ); + SELECT quote( ret_a('2.5') ); +} {2.5 2.5 '2.5' X'322E35' '2.5'} + +do_execsql_test 17.4 { + SELECT quote( ret_i('abc') ); + SELECT quote( ret_r('abc') ); + SELECT quote( ret_t('abc') ); + SELECT quote( ret_b('abc') ); + SELECT quote( ret_a('abc') ); +} {'abc' 'abc' 'abc' X'616263' 'abc'} + +do_execsql_test 17.5 { + SELECT quote( ret_i(X'616263') ); + SELECT quote( ret_r(X'616263') ); + SELECT quote( ret_t(X'616263') ); + SELECT quote( ret_b(X'616263') ); + SELECT quote( ret_a(X'616263') ); +} {'abc' 'abc' 'abc' X'616263' X'616263'} + +do_test 17.6.1 { + list [catch { db function xyz -return object ret } msg] $msg +} {1 {bad type "object": must be integer, real, text, blob, or any}} + +do_test 17.6.2 { + list [catch { db function xyz -return ret } msg] $msg +} {1 {option requires an argument: -return}} + +do_test 17.6.3 { + list [catch { db function xyz -n object ret } msg] $msg +} {1 {bad option "-n": must be -argcount, -deterministic or -returntype}} + +# 2019-02-28: The "bind_fallback" command. +# +do_test 18.100 { + unset -nocomplain bindings abc def ghi jkl mno e01 e02 + set bindings(abc) [expr {1+2}] + set bindings(def) {hello} + set bindings(ghi) [expr {3.1415926*1.0}] + proc bind_callback {nm} { + global bindings + set n2 [string range $nm 1 end] + if {[info exists bindings($n2)]} { + return $bindings($n2) + } + if {[string match e* $n2]} { + error "no such variable: $nm" + } + return -code return {} + } + db bind_fallback bind_callback + db eval {SELECT $abc, typeof($abc), $def, typeof($def), $ghi, typeof($ghi)} +} {3 integer hello text 3.1415926 real} +do_test 18.110 { + db eval {SELECT quote(@def), typeof(@def)} +} {X'68656C6C6F' blob} +do_execsql_test 18.120 { + SELECT typeof($mno); +} {null} +do_catchsql_test 18.130 { + SELECT $e01; +} {1 {no such variable: $e01}} +do_test 18.140 { + db bind_fallback +} {bind_callback} +do_test 18.200 { + db bind_fallback {} + db eval {SELECT $abc, typeof($abc), $def, typeof($def), $ghi, typeof($ghi)} +} {{} null {} null {} null} +do_test 18.300 { + unset -nocomplain bindings + proc bind_callback {nm} {lappend ::bindings $nm} + db bind_fallback bind_callback + db eval {SELECT $abc, @def, $ghi(123), :mno} + set bindings +} {{$abc} @def {$ghi(123)} :mno} +do_test 18.900 { + set rc [catch {db bind_fallback a b} msg] + lappend rc $msg +} {1 {wrong # args: should be "db bind_fallback ?CALLBACK?"}} +do_test 18.910 { + db bind_fallback bind_fallback_does_not_exist +} {} +do_catchsql_test 19.911 { + SELECT $abc, typeof($abc), $def, typeof($def), $ghi, typeof($ghi); +} {1 {invalid command name "bind_fallback_does_not_exist"}} +db bind_fallback {} finish_test diff --git a/test/tester.tcl b/test/tester.tcl index 0a165a26cf..6efb59bd6d 100644 --- a/test/tester.tcl +++ b/test/tester.tcl @@ -576,6 +576,10 @@ if {[info exists cmdlinearg]==0} { if {$cmdlinearg(verbose)==""} { set cmdlinearg(verbose) 1 } + + if {[info commands vdbe_coverage]!=""} { + vdbe_coverage start + } } # Update the soft-heap-limit each time this script is run. In that @@ -1296,6 +1300,9 @@ proc finalize_testing {} { memdebug_log_sql leaks.tcl } } + if {[info commands vdbe_coverage]!=""} { + vdbe_coverage_report + } foreach f [glob -nocomplain test.db-*-journal] { forcedelete $f } @@ -1305,6 +1312,39 @@ proc finalize_testing {} { exit [expr {$nErr>0}] } +proc vdbe_coverage_report {} { + puts "Writing vdbe coverage report to vdbe_coverage.txt" + set lSrc [list] + set iLine 0 + if {[file exists ../sqlite3.c]} { + set fd [open ../sqlite3.c] + set iLine + while { ![eof $fd] } { + set line [gets $fd] + incr iLine + if {[regexp {^/\** Begin file (.*\.c) \**/} $line -> file]} { + lappend lSrc [list $iLine $file] + } + } + close $fd + } + set fd [open vdbe_coverage.txt w] + foreach miss [vdbe_coverage report] { + foreach {line branch never} $miss {} + set nextfile "" + while {[llength $lSrc]>0 && [lindex $lSrc 0 0] < $line} { + set nextfile [lindex $lSrc 0 1] + set lSrc [lrange $lSrc 1 end] + } + if {$nextfile != ""} { + puts $fd "" + puts $fd "### $nextfile ###" + } + puts $fd "Vdbe branch $line: never $never (path $branch)" + } + close $fd +} + # Display memory statistics for analysis and debugging purposes. # proc show_memstats {} { diff --git a/test/triggerC.test b/test/triggerC.test index 49d4ecaeef..d5fd884d05 100644 --- a/test/triggerC.test +++ b/test/triggerC.test @@ -1057,5 +1057,19 @@ do_catchsql_test 16.2 { HAVING raise(ABORT, 'msg'); } {1 {RAISE() may only be used within a trigger-program}} +#------------------------------------------------------------------------- +# Datatype mismatch on IPK when there are BEFORE triggers. +# +do_execsql_test 17.0 { + CREATE TABLE xyz(x INTEGER PRIMARY KEY, y, z); + CREATE TRIGGER xyz_tr BEFORE INSERT ON xyz BEGIN + SELECT new.x; + END; +} +do_catchsql_test 17.1 { + INSERT INTO xyz VALUES('hello', 2, 3); +} {1 {datatype mismatch}} + + finish_test diff --git a/test/vacuum-into.test b/test/vacuum-into.test index 761db1f879..cd1c57a26b 100644 --- a/test/vacuum-into.test +++ b/test/vacuum-into.test @@ -86,5 +86,18 @@ do_catchsql_test vacuum-into-420 { VACUUM INTO target2() } {1 {no such function: target2}} +# The ability to VACUUM INTO a read-only database +db close +sqlite3 db test.db -readonly 1 +forcedelete test.db2 +do_execsql_test vacuum-into-500 { + VACUUM INTO 'test.db2'; +} +sqlite3 db2 test.db2 +do_test vacuum-into-510 { + db2 eval {SELECT name FROM sqlite_master ORDER BY 1} +} {t1 t1b t2} +db2 close +db close finish_test diff --git a/test/wal2.test b/test/wal2.test index b26f5ca877..9a56eb41fe 100644 --- a/test/wal2.test +++ b/test/wal2.test @@ -1085,7 +1085,7 @@ if {$::tcl_platform(platform) == "unix"} { set effective [format %.5o [expr $permissions & ~$umask]] do_test wal2-12.2.$tn.1 { file attributes test.db -permissions $permissions - file attributes test.db -permissions + string map {o 0} [file attributes test.db -permissions] } $permissions do_test wal2-12.2.$tn.2 { list [file exists test.db-wal] [file exists test.db-shm] @@ -1096,7 +1096,8 @@ if {$::tcl_platform(platform) == "unix"} { list [file exists test.db-wal] [file exists test.db-shm] } {1 1} do_test wal2-12.2.$tn.4 { - list [file attr test.db-wal -perm] [file attr test.db-shm -perm] + set x [list [file attr test.db-wal -perm] [file attr test.db-shm -perm]] + string map {o 0} $x } [list $effective $effective] do_test wal2-12.2.$tn.5 { db close @@ -1154,6 +1155,7 @@ if {$::tcl_platform(platform) == "unix"} { set L [file attr test.db -perm] lappend L [file attr test.db-wal -perm] lappend L [file attr test.db-shm -perm] + string map {o 0} $L } [list $db_perm $wal_perm $shm_perm] # If $can_open is true, then it should be possible to open a database diff --git a/test/wapp.tcl b/test/wapp.tcl new file mode 100644 index 0000000000..53c21e892f --- /dev/null +++ b/test/wapp.tcl @@ -0,0 +1,987 @@ +# Copyright (c) 2017 D. Richard Hipp +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the Simplified BSD License (also +# known as the "2-Clause License" or "FreeBSD License".) +# +# This program is distributed in the hope that it will be useful, +# but without any warranty; without even the implied warranty of +# merchantability or fitness for a particular purpose. +# +#--------------------------------------------------------------------------- +# +# Design rules: +# +# (1) All identifiers in the global namespace begin with "wapp" +# +# (2) Indentifiers intended for internal use only begin with "wappInt" +# +package require Tcl 8.6 + +# Add text to the end of the HTTP reply. No interpretation or transformation +# of the text is performs. The argument should be enclosed within {...} +# +proc wapp {txt} { + global wapp + dict append wapp .reply $txt +} + +# Add text to the page under construction. Do no escaping on the text. +# +# Though "unsafe" in general, there are uses for this kind of thing. +# For example, if you want to return the complete, unmodified content of +# a file: +# +# set fd [open content.html rb] +# wapp-unsafe [read $fd] +# close $fd +# +# You could do the same thing using ordinary "wapp" instead of "wapp-unsafe". +# The difference is that wapp-safety-check will complain about the misuse +# of "wapp", but it assumes that the person who write "wapp-unsafe" understands +# the risks. +# +# Though occasionally necessary, the use of this interface should be minimized. +# +proc wapp-unsafe {txt} { + global wapp + dict append wapp .reply $txt +} + +# Add text to the end of the reply under construction. The following +# substitutions are made: +# +# %html(...) Escape text for inclusion in HTML +# %url(...) Escape text for use as a URL +# %qp(...) Escape text for use as a URI query parameter +# %string(...) Escape text for use within a JSON string +# %unsafe(...) No transformations of the text +# +# The substitutions above terminate at the first ")" character. If the +# text of the TCL string in ... contains ")" characters itself, use instead: +# +# %html%(...)% +# %url%(...)% +# %qp%(...)% +# %string%(...)% +# %unsafe%(...)% +# +# In other words, use "%(...)%" instead of "(...)" to include the TCL string +# to substitute. +# +# The %unsafe substitution should be avoided whenever possible, obviously. +# In addition to the substitutions above, the text also does backslash +# escapes. +# +# The wapp-trim proc works the same as wapp-subst except that it also removes +# whitespace from the left margin, so that the generated HTML/CSS/Javascript +# does not appear to be indented when delivered to the client web browser. +# +if {$tcl_version>=8.7} { + proc wapp-subst {txt} { + global wapp + regsub -all -command \ + {%(html|url|qp|string|unsafe){1,1}?(|%)\((.+)\)\2} $txt wappInt-enc txt + dict append wapp .reply [subst -novariables -nocommand $txt] + } + proc wapp-trim {txt} { + global wapp + regsub -all {\n\s+} [string trim $txt] \n txt + regsub -all -command \ + {%(html|url|qp|string|unsafe){1,1}?(|%)\((.+)\)\2} $txt wappInt-enc txt + dict append wapp .reply [subst -novariables -nocommand $txt] + } + proc wappInt-enc {all mode nu1 txt} { + return [uplevel 2 "wappInt-enc-$mode \"$txt\""] + } +} else { + proc wapp-subst {txt} { + global wapp + regsub -all {%(html|url|qp|string|unsafe){1,1}?(|%)\((.+)\)\2} $txt \ + {[wappInt-enc-\1 "\3"]} txt + dict append wapp .reply [uplevel 1 [list subst -novariables $txt]] + } + proc wapp-trim {txt} { + global wapp + regsub -all {\n\s+} [string trim $txt] \n txt + regsub -all {%(html|url|qp|string|unsafe){1,1}?(|%)\((.+)\)\2} $txt \ + {[wappInt-enc-\1 "\3"]} txt + dict append wapp .reply [uplevel 1 [list subst -novariables $txt]] + } +} + +# There must be a wappInt-enc-NAME routine for each possible substitution +# in wapp-subst. Thus there are routines for "html", "url", "qp", and "unsafe". +# +# wappInt-enc-html Escape text so that it is safe to use in the +# body of an HTML document. +# +# wappInt-enc-url Escape text so that it is safe to pass as an +# argument to href= and src= attributes in HTML. +# +# wappInt-enc-qp Escape text so that it is safe to use as the +# value of a query parameter in a URL or in +# post data or in a cookie. +# +# wappInt-enc-string Escape ", ', \, and < for using inside of a +# javascript string literal. The < character +# is escaped to prevent "" from causing +# problems in embedded javascript. +# +# wappInt-enc-unsafe Perform no encoding at all. Unsafe. +# +proc wappInt-enc-html {txt} { + return [string map {& & < < > > \" " \\ \} $txt] +} +proc wappInt-enc-unsafe {txt} { + return $txt +} +proc wappInt-enc-url {s} { + if {[regsub -all {[^-{}@~?=#_.:/a-zA-Z0-9]} $s {[wappInt-%HHchar {&}]} s]} { + set s [subst -novar -noback $s] + } + if {[regsub -all {[{}]} $s {[wappInt-%HHchar \\&]} s]} { + set s [subst -novar -noback $s] + } + return $s +} +proc wappInt-enc-qp {s} { + if {[regsub -all {[^-{}_.a-zA-Z0-9]} $s {[wappInt-%HHchar {&}]} s]} { + set s [subst -novar -noback $s] + } + if {[regsub -all {[{}]} $s {[wappInt-%HHchar \\&]} s]} { + set s [subst -novar -noback $s] + } + return $s +} +proc wappInt-enc-string {s} { + return [string map {\\ \\\\ \" \\\" ' \\' < \\u003c} $s] +} + +# This is a helper routine for wappInt-enc-url and wappInt-enc-qp. It returns +# an appropriate %HH encoding for the single character c. If c is a unicode +# character, then this routine might return multiple bytes: %HH%HH%HH +# +proc wappInt-%HHchar {c} { + if {$c==" "} {return +} + return [regsub -all .. [binary encode hex [encoding convertto utf-8 $c]] {%&}] +} + + +# Undo the www-url-encoded format. +# +# HT: This code stolen from ncgi.tcl +# +proc wappInt-decode-url {str} { + set str [string map [list + { } "\\" "\\\\" \[ \\\[ \] \\\]] $str] + regsub -all -- \ + {%([Ee][A-Fa-f0-9])%([89ABab][A-Fa-f0-9])%([89ABab][A-Fa-f0-9])} \ + $str {[encoding convertfrom utf-8 [binary decode hex \1\2\3]]} str + regsub -all -- \ + {%([CDcd][A-Fa-f0-9])%([89ABab][A-Fa-f0-9])} \ + $str {[encoding convertfrom utf-8 [binary decode hex \1\2]]} str + regsub -all -- {%([0-7][A-Fa-f0-9])} $str {\\u00\1} str + return [subst -novar $str] +} + +# Reset the document back to an empty string. +# +proc wapp-reset {} { + global wapp + dict set wapp .reply {} +} + +# Change the mime-type of the result document. +# +proc wapp-mimetype {x} { + global wapp + dict set wapp .mimetype $x +} + +# Change the reply code. +# +proc wapp-reply-code {x} { + global wapp + dict set wapp .reply-code $x +} + +# Set a cookie +# +proc wapp-set-cookie {name value} { + global wapp + dict lappend wapp .new-cookies $name $value +} + +# Unset a cookie +# +proc wapp-clear-cookie {name} { + wapp-set-cookie $name {} +} + +# Add extra entries to the reply header +# +proc wapp-reply-extra {name value} { + global wapp + dict lappend wapp .reply-extra $name $value +} + +# Specifies how the web-page under construction should be cached. +# The argument should be one of: +# +# no-cache +# max-age=N (for some integer number of seconds, N) +# private,max-age=N +# +proc wapp-cache-control {x} { + wapp-reply-extra Cache-Control $x +} + +# Redirect to a different web page +# +proc wapp-redirect {uri} { + wapp-reply-code {307 Redirect} + wapp-reply-extra Location $uri +} + +# Return the value of a wapp parameter +# +proc wapp-param {name {dflt {}}} { + global wapp + if {![dict exists $wapp $name]} {return $dflt} + return [dict get $wapp $name] +} + +# Return true if a and only if the wapp parameter $name exists +# +proc wapp-param-exists {name} { + global wapp + return [dict exists $wapp $name] +} + +# Set the value of a wapp parameter +# +proc wapp-set-param {name value} { + global wapp + dict set wapp $name $value +} + +# Return all parameter names that match the GLOB pattern, or all +# names if the GLOB pattern is omitted. +# +proc wapp-param-list {{glob {*}}} { + global wapp + return [dict keys $wapp $glob] +} + +# By default, Wapp does not decode query parameters and POST parameters +# for cross-origin requests. This is a security restriction, designed to +# help prevent cross-site request forgery (CSRF) attacks. +# +# As a consequence of this restriction, URLs for sites generated by Wapp +# that contain query parameters will not work as URLs found in other +# websites. You cannot create a link from a second website into a Wapp +# website if the link contains query planner, by default. +# +# Of course, it is sometimes desirable to allow query parameters on external +# links. For URLs for which this is safe, the application should invoke +# wapp-allow-xorigin-params. This procedure tells Wapp that it is safe to +# go ahead and decode the query parameters even for cross-site requests. +# +# In other words, for Wapp security is the default setting. Individual pages +# need to actively disable the cross-site request security if those pages +# are safe for cross-site access. +# +proc wapp-allow-xorigin-params {} { + global wapp + if {![dict exists $wapp .qp] && ![dict get $wapp SAME_ORIGIN]} { + wappInt-decode-query-params + } +} + +# Set the content-security-policy. +# +# The default content-security-policy is very strict: "default-src 'self'" +# The default policy prohibits the use of in-line javascript or CSS. +# +# Provide an alternative CSP as the argument. Or use "off" to disable +# the CSP completely. +# +proc wapp-content-security-policy {val} { + global wapp + if {$val=="off"} { + dict unset wapp .csp + } else { + dict set wapp .csp $val + } +} + +# Examine the bodys of all procedures in this program looking for +# unsafe calls to various Wapp interfaces. Return a text string +# containing warnings. Return an empty string if all is ok. +# +# This routine is advisory only. It misses some constructs that are +# dangerous and flags others that are safe. +# +proc wapp-safety-check {} { + set res {} + foreach p [info procs] { + set ln 0 + foreach x [split [info body $p] \n] { + incr ln + if {[regexp {^[ \t]*wapp[ \t]+([^\n]+)} $x all tail] + && [string index $tail 0]!="\173" + && [regexp {[[$]} $tail] + } { + append res "$p:$ln: unsafe \"wapp\" call: \"[string trim $x]\"\n" + } + if {[regexp {^[ \t]*wapp-(subst|trim)[ \t]+[^\173]} $x all cx]} { + append res "$p:$ln: unsafe \"wapp-$cx\" call: \"[string trim $x]\"\n" + } + } + } + return $res +} + +# Return a string that descripts the current environment. Applications +# might find this useful for debugging. +# +proc wapp-debug-env {} { + global wapp + set out {} + foreach var [lsort [dict keys $wapp]] { + if {[string index $var 0]=="."} continue + append out "$var = [list [dict get $wapp $var]]\n" + } + append out "\[pwd\] = [list [pwd]]\n" + return $out +} + +# Tracing function for each HTTP request. This is overridden by wapp-start +# if tracing is enabled. +# +proc wappInt-trace {} {} + +# Start up a listening socket. Arrange to invoke wappInt-new-connection +# for each inbound HTTP connection. +# +# port Listen on this TCP port. 0 means to select a port +# that is not currently in use +# +# wappmode One of "scgi", "remote-scgi", "server", or "local". +# +# fromip If not {}, then reject all requests from IP addresses +# other than $fromip +# +proc wappInt-start-listener {port wappmode fromip} { + if {[string match *scgi $wappmode]} { + set type SCGI + set server [list wappInt-new-connection \ + wappInt-scgi-readable $wappmode $fromip] + } else { + set type HTTP + set server [list wappInt-new-connection \ + wappInt-http-readable $wappmode $fromip] + } + if {$wappmode=="local" || $wappmode=="scgi"} { + set x [socket -server $server -myaddr 127.0.0.1 $port] + } else { + set x [socket -server $server $port] + } + set coninfo [chan configure $x -sockname] + set port [lindex $coninfo 2] + if {$wappmode=="local"} { + wappInt-start-browser http://127.0.0.1:$port/ + } elseif {$fromip!=""} { + puts "Listening for $type requests on TCP port $port from IP $fromip" + } else { + puts "Listening for $type requests on TCP port $port" + } +} + +# Start a web-browser and point it at $URL +# +proc wappInt-start-browser {url} { + global tcl_platform + if {$tcl_platform(platform)=="windows"} { + exec cmd /c start $url & + } elseif {$tcl_platform(os)=="Darwin"} { + exec open $url & + } elseif {[catch {exec xdg-open $url}]} { + exec firefox $url & + } +} + +# This routine is a "socket -server" callback. The $chan, $ip, and $port +# arguments are added by the socket command. +# +# Arrange to invoke $callback when content is available on the new socket. +# The $callback will process inbound HTTP or SCGI content. Reject the +# request if $fromip is not an empty string and does not match $ip. +# +proc wappInt-new-connection {callback wappmode fromip chan ip port} { + upvar #0 wappInt-$chan W + if {$fromip!="" && ![string match $fromip $ip]} { + close $chan + return + } + set W [dict create REMOTE_ADDR $ip REMOTE_PORT $port WAPP_MODE $wappmode \ + .header {}] + fconfigure $chan -blocking 0 -translation binary + fileevent $chan readable [list $callback $chan] +} + +# Close an input channel +# +proc wappInt-close-channel {chan} { + if {$chan=="stdout"} { + # This happens after completing a CGI request + exit 0 + } else { + unset ::wappInt-$chan + close $chan + } +} + +# Process new text received on an inbound HTTP request +# +proc wappInt-http-readable {chan} { + if {[catch [list wappInt-http-readable-unsafe $chan] msg]} { + puts stderr "$msg\n$::errorInfo" + wappInt-close-channel $chan + } +} +proc wappInt-http-readable-unsafe {chan} { + upvar #0 wappInt-$chan W wapp wapp + if {![dict exists $W .toread]} { + # If the .toread key is not set, that means we are still reading + # the header + set line [string trimright [gets $chan]] + set n [string length $line] + if {$n>0} { + if {[dict get $W .header]=="" || [regexp {^\s+} $line]} { + dict append W .header $line + } else { + dict append W .header \n$line + } + if {[string length [dict get $W .header]]>100000} { + error "HTTP request header too big - possible DOS attack" + } + } elseif {$n==0} { + # We have reached the blank line that terminates the header. + global argv0 + set a0 [file normalize $argv0] + dict set W SCRIPT_FILENAME $a0 + dict set W DOCUMENT_ROOT [file dir $a0] + if {[wappInt-parse-header $chan]} { + catch {close $chan} + return + } + set len 0 + if {[dict exists $W CONTENT_LENGTH]} { + set len [dict get $W CONTENT_LENGTH] + } + if {$len>0} { + # Still need to read the query content + dict set W .toread $len + } else { + # There is no query content, so handle the request immediately + set wapp $W + wappInt-handle-request $chan 0 + } + } + } else { + # If .toread is set, that means we are reading the query content. + # Continue reading until .toread reaches zero. + set got [read $chan [dict get $W .toread]] + dict append W CONTENT $got + dict set W .toread [expr {[dict get $W .toread]-[string length $got]}] + if {[dict get $W .toread]<=0} { + # Handle the request as soon as all the query content is received + set wapp $W + wappInt-handle-request $chan 0 + } + } +} + +# Decode the HTTP request header. +# +# This routine is always running inside of a [catch], so if +# any problems arise, simply raise an error. +# +proc wappInt-parse-header {chan} { + upvar #0 wappInt-$chan W + set hdr [split [dict get $W .header] \n] + if {$hdr==""} {return 1} + set req [lindex $hdr 0] + dict set W REQUEST_METHOD [set method [lindex $req 0]] + if {[lsearch {GET HEAD POST} $method]<0} { + error "unsupported request method: \"[dict get $W REQUEST_METHOD]\"" + } + set uri [lindex $req 1] + set split_uri [split $uri ?] + set uri0 [lindex $split_uri 0] + if {![regexp {^/[-.a-z0-9_/]*$} $uri0]} { + error "invalid request uri: \"$uri0\"" + } + dict set W REQUEST_URI $uri0 + dict set W PATH_INFO $uri0 + set uri1 [lindex $split_uri 1] + dict set W QUERY_STRING $uri1 + set n [llength $hdr] + for {set i 1} {$i<$n} {incr i} { + set x [lindex $hdr $i] + if {![regexp {^(.+): +(.*)$} $x all name value]} { + error "invalid header line: \"$x\"" + } + set name [string toupper $name] + switch -- $name { + REFERER {set name HTTP_REFERER} + USER-AGENT {set name HTTP_USER_AGENT} + CONTENT-LENGTH {set name CONTENT_LENGTH} + CONTENT-TYPE {set name CONTENT_TYPE} + HOST {set name HTTP_HOST} + COOKIE {set name HTTP_COOKIE} + ACCEPT-ENCODING {set name HTTP_ACCEPT_ENCODING} + default {set name .hdr:$name} + } + dict set W $name $value + } + return 0 +} + +# Decode the QUERY_STRING parameters from a GET request or the +# application/x-www-form-urlencoded CONTENT from a POST request. +# +# This routine sets the ".qp" element of the ::wapp dict as a signal +# that query parameters have already been decoded. +# +proc wappInt-decode-query-params {} { + global wapp + dict set wapp .qp 1 + if {[dict exists $wapp QUERY_STRING]} { + foreach qterm [split [dict get $wapp QUERY_STRING] &] { + set qsplit [split $qterm =] + set nm [lindex $qsplit 0] + if {[regexp {^[a-z][a-z0-9]*$} $nm]} { + dict set wapp $nm [wappInt-decode-url [lindex $qsplit 1]] + } + } + } + if {[dict exists $wapp CONTENT_TYPE] && [dict exists $wapp CONTENT]} { + set ctype [dict get $wapp CONTENT_TYPE] + if {$ctype=="application/x-www-form-urlencoded"} { + foreach qterm [split [string trim [dict get $wapp CONTENT]] &] { + set qsplit [split $qterm =] + set nm [lindex $qsplit 0] + if {[regexp {^[a-z][-a-z0-9_]*$} $nm]} { + dict set wapp $nm [wappInt-decode-url [lindex $qsplit 1]] + } + } + } elseif {[string match multipart/form-data* $ctype]} { + regexp {^(.*?)\r\n(.*)$} [dict get $wapp CONTENT] all divider body + set ndiv [string length $divider] + while {[string length $body]} { + set idx [string first $divider $body] + set unit [string range $body 0 [expr {$idx-3}]] + set body [string range $body [expr {$idx+$ndiv+2}] end] + if {[regexp {^Content-Disposition: form-data; (.*?)\r\n\r\n(.*)$} \ + $unit unit hdr content]} { + if {[regexp {name="(.*)"; filename="(.*)"\r\nContent-Type: (.*?)$}\ + $hdr hr name filename mimetype]} { + dict set wapp $name.filename \ + [string map [list \\\" \" \\\\ \\] $filename] + dict set wapp $name.mimetype $mimetype + dict set wapp $name.content $content + } elseif {[regexp {name="(.*)"} $hdr hr name]} { + dict set wapp $name $content + } + } + } + } + } +} + +# Invoke application-supplied methods to generate a reply to +# a single HTTP request. +# +# This routine always runs within [catch], so handle exceptions by +# invoking [error]. +# +proc wappInt-handle-request {chan useCgi} { + global wapp + dict set wapp .reply {} + dict set wapp .mimetype {text/html; charset=utf-8} + dict set wapp .reply-code {200 Ok} + dict set wapp .csp {default-src 'self'} + + # Set up additional CGI environment values + # + if {![dict exists $wapp HTTP_HOST]} { + dict set wapp BASE_URL {} + } elseif {[dict exists $wapp HTTPS]} { + dict set wapp BASE_URL https://[dict get $wapp HTTP_HOST] + } else { + dict set wapp BASE_URL http://[dict get $wapp HTTP_HOST] + } + if {![dict exists $wapp REQUEST_URI]} { + dict set wapp REQUEST_URI / + } elseif {[regsub {\?.*} [dict get $wapp REQUEST_URI] {} newR]} { + # Some servers (ex: nginx) append the query parameters to REQUEST_URI. + # These need to be stripped off + dict set wapp REQUEST_URI $newR + } + if {[dict exists $wapp SCRIPT_NAME]} { + dict append wapp BASE_URL [dict get $wapp SCRIPT_NAME] + } else { + dict set wapp SCRIPT_NAME {} + } + if {![dict exists $wapp PATH_INFO]} { + # If PATH_INFO is missing (ex: nginx) then construct it + set URI [dict get $wapp REQUEST_URI] + set skip [string length [dict get $wapp SCRIPT_NAME]] + dict set wapp PATH_INFO [string range $URI $skip end] + } + if {[regexp {^/([^/]+)(.*)$} [dict get $wapp PATH_INFO] all head tail]} { + dict set wapp PATH_HEAD $head + dict set wapp PATH_TAIL [string trimleft $tail /] + } else { + dict set wapp PATH_INFO {} + dict set wapp PATH_HEAD {} + dict set wapp PATH_TAIL {} + } + dict set wapp SELF_URL [dict get $wapp BASE_URL]/[dict get $wapp PATH_HEAD] + + # Parse query parameters from the query string, the cookies, and + # POST data + # + if {[dict exists $wapp HTTP_COOKIE]} { + foreach qterm [split [dict get $wapp HTTP_COOKIE] {;}] { + set qsplit [split [string trim $qterm] =] + set nm [lindex $qsplit 0] + if {[regexp {^[a-z][-a-z0-9_]*$} $nm]} { + dict set wapp $nm [wappInt-decode-url [lindex $qsplit 1]] + } + } + } + set same_origin 0 + if {[dict exists $wapp HTTP_REFERER]} { + set referer [dict get $wapp HTTP_REFERER] + set base [dict get $wapp BASE_URL] + if {$referer==$base || [string match $base/* $referer]} { + set same_origin 1 + } + } + dict set wapp SAME_ORIGIN $same_origin + if {$same_origin} { + wappInt-decode-query-params + } + + # Invoke the application-defined handler procedure for this page + # request. If an error occurs while running that procedure, generate + # an HTTP reply that contains the error message. + # + wapp-before-dispatch-hook + wappInt-trace + set mname [dict get $wapp PATH_HEAD] + if {[catch { + if {$mname!="" && [llength [info proc wapp-page-$mname]]>0} { + wapp-page-$mname + } else { + wapp-default + } + } msg]} { + if {[wapp-param WAPP_MODE]=="local" || [wapp-param WAPP_MODE]=="server"} { + puts "ERROR: $::errorInfo" + } + wapp-reset + wapp-reply-code "500 Internal Server Error" + wapp-mimetype text/html + wapp-trim { +

    Wapp Application Error

    +
    %html($::errorInfo)
    + } + dict unset wapp .new-cookies + } + + # Transmit the HTTP reply + # + if {$chan=="stdout"} { + puts $chan "Status: [dict get $wapp .reply-code]\r" + } else { + puts $chan "HTTP/1.1 [dict get $wapp .reply-code]\r" + puts $chan "Server: wapp\r" + puts $chan "Connection: close\r" + } + if {[dict exists $wapp .reply-extra]} { + foreach {name value} [dict get $wapp .reply-extra] { + puts $chan "$name: $value\r" + } + } + if {[dict exists $wapp .csp]} { + puts $chan "Content-Security-Policy: [dict get $wapp .csp]\r" + } + set mimetype [dict get $wapp .mimetype] + puts $chan "Content-Type: $mimetype\r" + if {[dict exists $wapp .new-cookies]} { + foreach {nm val} [dict get $wapp .new-cookies] { + if {[regexp {^[a-z][-a-z0-9_]*$} $nm]} { + if {$val==""} { + puts $chan "Set-Cookie: $nm=; HttpOnly; Path=/; Max-Age=1\r" + } else { + set val [wappInt-enc-url $val] + puts $chan "Set-Cookie: $nm=$val; HttpOnly; Path=/\r" + } + } + } + } + if {[string match text/* $mimetype]} { + set reply [encoding convertto utf-8 [dict get $wapp .reply]] + if {[regexp {\ygzip\y} [wapp-param HTTP_ACCEPT_ENCODING]]} { + catch { + set x [zlib gzip $reply] + set reply $x + puts $chan "Content-Encoding: gzip\r" + } + } + } else { + set reply [dict get $wapp .reply] + } + puts $chan "Content-Length: [string length $reply]\r" + puts $chan \r + puts -nonewline $chan $reply + flush $chan + wappInt-close-channel $chan +} + +# This routine runs just prior to request-handler dispatch. The +# default implementation is a no-op, but applications can override +# to do additional transformations or checks. +# +proc wapp-before-dispatch-hook {} {return} + +# Process a single CGI request +# +proc wappInt-handle-cgi-request {} { + global wapp env + foreach key { + CONTENT_LENGTH + CONTENT_TYPE + DOCUMENT_ROOT + HTTP_ACCEPT_ENCODING + HTTP_COOKIE + HTTP_HOST + HTTP_REFERER + HTTP_USER_AGENT + HTTPS + PATH_INFO + QUERY_STRING + REMOTE_ADDR + REQUEST_METHOD + REQUEST_URI + REMOTE_USER + SCRIPT_FILENAME + SCRIPT_NAME + SERVER_NAME + SERVER_PORT + SERVER_PROTOCOL + } { + if {[info exists env($key)]} { + dict set wapp $key $env($key) + } + } + set len 0 + if {[dict exists $wapp CONTENT_LENGTH]} { + set len [dict get $wapp CONTENT_LENGTH] + } + if {$len>0} { + fconfigure stdin -translation binary + dict set wapp CONTENT [read stdin $len] + } + dict set wapp WAPP_MODE cgi + fconfigure stdout -translation binary + wappInt-handle-request stdout 1 +} + +# Process new text received on an inbound SCGI request +# +proc wappInt-scgi-readable {chan} { + if {[catch [list wappInt-scgi-readable-unsafe $chan] msg]} { + puts stderr "$msg\n$::errorInfo" + wappInt-close-channel $chan + } +} +proc wappInt-scgi-readable-unsafe {chan} { + upvar #0 wappInt-$chan W wapp wapp + if {![dict exists $W .toread]} { + # If the .toread key is not set, that means we are still reading + # the header. + # + # An SGI header is short. This implementation assumes the entire + # header is available all at once. + # + dict set W .remove_addr [dict get $W REMOTE_ADDR] + set req [read $chan 15] + set n [string length $req] + scan $req %d:%s len hdr + incr len [string length "$len:,"] + append hdr [read $chan [expr {$len-15}]] + foreach {nm val} [split $hdr \000] { + if {$nm==","} break + dict set W $nm $val + } + set len 0 + if {[dict exists $W CONTENT_LENGTH]} { + set len [dict get $W CONTENT_LENGTH] + } + if {$len>0} { + # Still need to read the query content + dict set W .toread $len + } else { + # There is no query content, so handle the request immediately + dict set W SERVER_ADDR [dict get $W .remove_addr] + set wapp $W + wappInt-handle-request $chan 0 + } + } else { + # If .toread is set, that means we are reading the query content. + # Continue reading until .toread reaches zero. + set got [read $chan [dict get $W .toread]] + dict append W CONTENT $got + dict set W .toread [expr {[dict get $W .toread]-[string length $got]}] + if {[dict get $W .toread]<=0} { + # Handle the request as soon as all the query content is received + dict set W SERVER_ADDR [dict get $W .remove_addr] + set wapp $W + wappInt-handle-request $chan 0 + } + } +} + +# Start up the wapp framework. Parameters are a list passed as the +# single argument. +# +# -server $PORT Listen for HTTP requests on this TCP port $PORT +# +# -local $PORT Listen for HTTP requests on 127.0.0.1:$PORT +# +# -scgi $PORT Listen for SCGI requests on 127.0.0.1:$PORT +# +# -remote-scgi $PORT Listen for SCGI requests on TCP port $PORT +# +# -cgi Handle a single CGI request +# +# With no arguments, the behavior is called "auto". In "auto" mode, +# if the GATEWAY_INTERFACE environment variable indicates CGI, then run +# as CGI. Otherwise, start an HTTP server bound to the loopback address +# only, on an arbitrary TCP port, and automatically launch a web browser +# on that TCP port. +# +# Additional options: +# +# -fromip GLOB Reject any incoming request where the remote +# IP address does not match the GLOB pattern. This +# value defaults to '127.0.0.1' for -local and -scgi. +# +# -nowait Do not wait in the event loop. Return immediately +# after all event handlers are established. +# +# -trace "puts" each request URL as it is handled, for +# debugging +# +# -lint Run wapp-safety-check on the application instead +# of running the application itself +# +# -Dvar=value Set TCL global variable "var" to "value" +# +# +proc wapp-start {arglist} { + global env + set mode auto + set port 0 + set nowait 0 + set fromip {} + set n [llength $arglist] + for {set i 0} {$i<$n} {incr i} { + set term [lindex $arglist $i] + if {[string match --* $term]} {set term [string range $term 1 end]} + switch -glob -- $term { + -server { + incr i; + set mode "server" + set port [lindex $arglist $i] + } + -local { + incr i; + set mode "local" + set fromip 127.0.0.1 + set port [lindex $arglist $i] + } + -scgi { + incr i; + set mode "scgi" + set fromip 127.0.0.1 + set port [lindex $arglist $i] + } + -remote-scgi { + incr i; + set mode "remote-scgi" + set port [lindex $arglist $i] + } + -cgi { + set mode "cgi" + } + -fromip { + incr i + set fromip [lindex $arglist $i] + } + -nowait { + set nowait 1 + } + -trace { + proc wappInt-trace {} { + set q [wapp-param QUERY_STRING] + set uri [wapp-param BASE_URL][wapp-param PATH_INFO] + if {$q!=""} {append uri ?$q} + puts $uri + } + } + -lint { + set res [wapp-safety-check] + if {$res!=""} { + puts "Potential problems in this code:" + puts $res + exit 1 + } else { + exit + } + } + -D*=* { + if {[regexp {^.D([^=]+)=(.*)$} $term all var val]} { + set ::$var $val + } + } + default { + error "unknown option: $term" + } + } + } + if {$mode=="auto"} { + if {[info exists env(GATEWAY_INTERFACE)] + && [string match CGI/1.* $env(GATEWAY_INTERFACE)]} { + set mode cgi + } else { + set mode local + } + } + if {$mode=="cgi"} { + wappInt-handle-cgi-request + } else { + wappInt-start-listener $port $mode $fromip + if {!$nowait} { + vwait ::forever + } + } +} + +# Call this version 1.0 +package provide wapp 1.0 diff --git a/test/wapptest.tcl b/test/wapptest.tcl new file mode 100755 index 0000000000..d12d8e7222 --- /dev/null +++ b/test/wapptest.tcl @@ -0,0 +1,674 @@ +#!/bin/sh +# \ +exec wapptclsh "$0" ${1+"$@"} + +# package required wapp +source [file join [file dirname [info script]] wapp.tcl] + +# Read the data from the releasetest_data.tcl script. +# +source [file join [file dirname [info script]] releasetest_data.tcl] + +# Variables set by the "control" form: +# +# G(platform) - User selected platform. +# G(test) - Set to "Normal", "Veryquick", "Smoketest" or "Build-Only". +# G(keep) - Boolean. True to delete no files after each test. +# G(msvc) - Boolean. True to use MSVC as the compiler. +# G(tcl) - Use Tcl from this directory for builds. +# G(jobs) - How many sub-processes to run simultaneously. +# +set G(platform) $::tcl_platform(os)-$::tcl_platform(machine) +set G(test) Normal +set G(keep) 0 +set G(msvc) 0 +set G(tcl) [::tcl::pkgconfig get libdir,install] +set G(jobs) 3 +set G(debug) 0 + +proc wapptest_init {} { + global G + + set lSave [list platform test keep msvc tcl jobs debug] + foreach k $lSave { set A($k) $G($k) } + array unset G + foreach k $lSave { set G($k) $A($k) } + + # The root of the SQLite source tree. + set G(srcdir) [file dirname [file dirname [info script]]] + + # releasetest.tcl script + set G(releaseTest) [file join [file dirname [info script]] releasetest.tcl] + + set G(sqlite_version) "unknown" + + # Either "config", "running" or "stopped": + set G(state) "config" + + set G(hostname) "(unknown host)" + catch { set G(hostname) [exec hostname] } + set G(host) $G(hostname) + append G(host) " $::tcl_platform(os) $::tcl_platform(osVersion)" + append G(host) " $::tcl_platform(machine) $::tcl_platform(byteOrder)" +} + +# Check to see if there are uncommitted changes in the SQLite source +# directory. Return true if there are, or false otherwise. +# +proc check_uncommitted {} { + global G + set ret 0 + set pwd [pwd] + cd $G(srcdir) + if {[catch {exec fossil changes} res]==0 && [string trim $res]!=""} { + set ret 1 + } + cd $pwd + return $ret +} + +proc generate_fossil_info {} { + global G + set pwd [pwd] + cd $G(srcdir) + if {[catch {exec fossil info} r1]} return + if {[catch {exec fossil changes} r2]} return + cd $pwd + + foreach line [split $r1 "\n"] { + if {[regexp {^checkout: *(.*)$} $line -> co]} { + wapp-trim {
    %html($co) } + } + } + + if {[string trim $r2]!=""} { + wapp-trim { +
    + WARNING: Uncommitted changes in checkout + + } + } +} + +# If the application is in "config" state, set the contents of the +# ::G(test_array) global to reflect the tests that will be run. If the +# app is in some other state ("running" or "stopped"), this command +# is a no-op. +# +proc set_test_array {} { + global G + if { $G(state)=="config" } { + set G(test_array) [list] + foreach {config target} $::Platforms($G(platform)) { + + # If using MSVC, do not run sanitize or valgrind tests. Or the + # checksymbols test. + if {$G(msvc) && ( + "Sanitize" == $config + || "checksymbols" in $target + || "valgrindtest" in $target + )} { + continue + } + + # If the test mode is not "Normal", override the target. + # + if {$target!="checksymbols" && $G(platform)!="Failure-Detection"} { + switch -- $G(test) { + Veryquick { set target quicktest } + Smoketest { set target smoketest } + Build-Only { + set target testfixture + if {$::tcl_platform(platform)=="windows"} { + set target testfixture.exe + } + } + } + } + + lappend G(test_array) [dict create config $config target $target] + + set exclude [list checksymbols valgrindtest fuzzoomtest] + if {$G(debug) && !($target in $exclude)} { + set debug_idx [lsearch -glob $::Configs($config) -DSQLITE_DEBUG*] + set xtarget $target + regsub -all {fulltest[a-z]*} $xtarget test xtarget + if {$debug_idx<0} { + lappend G(test_array) [ + dict create config $config-(Debug) target $xtarget + ] + } else { + lappend G(test_array) [ + dict create config $config-(NDebug) target $xtarget + ] + } + } + } + } +} + +proc count_tests_and_errors {name logfile} { + global G + + set fd [open $logfile rb] + set seen 0 + while {![eof $fd]} { + set line [gets $fd] + if {[regexp {(\d+) errors out of (\d+) tests} $line all nerr ntest]} { + incr G(test.$name.nError) $nerr + incr G(test.$name.nTest) $ntest + set seen 1 + if {$nerr>0} { + set G(test.$name.errmsg) $line + } + } + if {[regexp {runtime error: +(.*)} $line all msg]} { + # skip over "value is outside range" errors + if {[regexp {value .* is outside the range of representable} $line]} { + # noop + } else { + incr G(test.$name.nError) + if {$G(test.$name.errmsg)==""} { + set G(test.$name.errmsg) $msg + } + } + } + if {[regexp {fatal error +(.*)} $line all msg]} { + incr G(test.$name.nError) + if {$G(test.$name.errmsg)==""} { + set G(test.$name.errmsg) $msg + } + } + if {[regexp {ERROR SUMMARY: (\d+) errors.*} $line all cnt] && $cnt>0} { + incr G(test.$name.nError) + if {$G(test.$name.errmsg)==""} { + set G(test.$name.errmsg) $all + } + } + if {[regexp {^VERSION: 3\.\d+.\d+} $line]} { + set v [string range $line 9 end] + if {$G(sqlite_version) eq "unknown"} { + set G(sqlite_version) $v + } elseif {$G(sqlite_version) ne $v} { + set G(test.$name.errmsg) "version conflict: {$G(sqlite_version)} vs. {$v}" + } + } + } + close $fd + if {$G(test) == "Build-Only"} { + incr G(test.$name.nTest) + if {$G(test.$name.nError)>0} { + set errmsg "Build failed" + } + } elseif {!$seen} { + set G(test.$name.errmsg) "Test did not complete" + if {[file readable core]} { + append G(test.$name.errmsg) " - core file exists" + } + } +} + +proc slave_test_done {name rc} { + global G + set G(test.$name.done) [clock seconds] + set G(test.$name.nError) 0 + set G(test.$name.nTest) 0 + set G(test.$name.errmsg) "" + if {$rc} { + incr G(test.$name.nError) + } + if {[file exists $G(test.$name.log)]} { + count_tests_and_errors $name $G(test.$name.log) + } +} + +proc slave_fileevent {name} { + global G + set fd $G(test.$name.channel) + + if {[eof $fd]} { + fconfigure $fd -blocking 1 + set rc [catch { close $fd }] + unset G(test.$name.channel) + slave_test_done $name $rc + } else { + set line [gets $fd] + if {[string trim $line] != ""} { puts "Trace : $name - \"$line\"" } + } + + do_some_stuff +} + +proc do_some_stuff {} { + global G + + # Count the number of running jobs. A running job has an entry named + # "channel" in its dictionary. + set nRunning 0 + set bFinished 1 + foreach j $G(test_array) { + set name [dict get $j config] + if { [info exists G(test.$name.channel)]} { incr nRunning } + if {![info exists G(test.$name.done)]} { set bFinished 0 } + } + + if {$bFinished} { + set nError 0 + set nTest 0 + set nConfig 0 + foreach j $G(test_array) { + set name [dict get $j config] + incr nError $G(test.$name.nError) + incr nTest $G(test.$name.nTest) + incr nConfig + } + set G(result) "$nError errors from $nTest tests in $nConfig configurations." + catch { + append G(result) " SQLite version $G(sqlite_version)" + } + set G(state) "stopped" + } else { + set nLaunch [expr $G(jobs) - $nRunning] + foreach j $G(test_array) { + if {$nLaunch<=0} break + set name [dict get $j config] + if { ![info exists G(test.$name.channel)] + && ![info exists G(test.$name.done)] + } { + set target [dict get $j target] + set G(test.$name.start) [clock seconds] + set fd [open "|[info nameofexecutable] $G(releaseTest) --slave" r+] + set G(test.$name.channel) $fd + fconfigure $fd -blocking 0 + fileevent $fd readable [list slave_fileevent $name] + + puts $fd [list 0 $G(msvc) 0 $G(keep)] + + set wtcl "" + if {$G(tcl)!=""} { set wtcl "--with-tcl=$G(tcl)" } + + # If this configuration is named -(Debug) or -(NDebug), + # then add or remove the SQLITE_DEBUG option from the base + # configuration before running the test. + if {[regexp -- {(.*)-(\(.*\))} $name -> head tail]} { + set opts $::Configs($head) + if {$tail=="(Debug)"} { + append opts " -DSQLITE_DEBUG=1 -DSQLITE_EXTRA_IFNULLROW=1" + } else { + regsub { *-DSQLITE_MEMDEBUG[^ ]* *} $opts { } opts + regsub { *-DSQLITE_DEBUG[^ ]* *} $opts { } opts + } + } else { + set opts $::Configs($name) + } + + set L [make_test_suite $G(msvc) $wtcl $name $target $opts] + puts $fd $L + flush $fd + set G(test.$name.log) [file join [lindex $L 1] test.log] + incr nLaunch -1 + } + } + } +} + +proc generate_select_widget {label id lOpt opt} { + wapp-trim { + + } +} + +proc generate_main_page {{extra {}}} { + global G + set_test_array + + set hostname $G(hostname) + wapp-trim { + + + %html($hostname): wapptest.tcl + + + + } + + set host $G(host) + wapp-trim { +
    %string($host) + } + generate_fossil_info + wapp-trim { +
    +
    +
    + } + + # Build the "platform" select widget. + set lOpt [array names ::Platforms] + generate_select_widget Platform control_platform $lOpt $G(platform) + + # Build the "test" select widget. + set lOpt [list Normal Veryquick Smoketest Build-Only] + generate_select_widget Test control_test $lOpt $G(test) + + # Build the "jobs" select widget. Options are 1 to 8. + generate_select_widget Jobs control_jobs {1 2 3 4 5 6 7 8} $G(jobs) + + switch $G(state) { + config { + set txt "Run Tests!" + set id control_run + } + running { + set txt "STOP Tests!" + set id control_stop + } + stopped { + set txt "Reset!" + set id control_reset + } + } + wapp-trim { +
    + + +
    + } + + wapp-trim { +

    + + + + + + + + + + + } + wapp-trim { +
    + } + wapp-trim { +
    +
    + } + wapp-page-tests + + set script "script/$G(state).js" + wapp-trim { +
    + + + + } +} + +proc wapp-default {} { + generate_main_page +} + +proc wapp-page-tests {} { + global G + wapp-trim { } + foreach t $G(test_array) { + set config [dict get $t config] + set target [dict get $t target] + + set class "testwait" + set seconds "" + + if {[info exists G(test.$config.log)]} { + if {[info exists G(test.$config.channel)]} { + set class "testrunning" + set seconds [expr [clock seconds] - $G(test.$config.start)] + } elseif {[info exists G(test.$config.done)]} { + if {$G(test.$config.nError)>0} { + set class "testfail" + } else { + set class "testdone" + } + set seconds [expr $G(test.$config.done) - $G(test.$config.start)] + } + + set min [format %.2d [expr ($seconds / 60) % 60]] + set hr [format %.2d [expr $seconds / 3600]] + set sec [format %.2d [expr $seconds % 60]] + set seconds "$hr:$min:$sec" + } + + wapp-trim { + + +
    %html($config) + %html($target) + %html($seconds) + + } + if {[info exists G(test.$config.log)]} { + set log $G(test.$config.log) + set uri "log/$log" + wapp-trim { + %html($log) + } + } + if {[info exists G(test.$config.errmsg)] && $G(test.$config.errmsg)!=""} { + set errmsg $G(test.$config.errmsg) + wapp-trim { +
    %html($errmsg) + } + } + } + + wapp-trim {
    } + + if {[info exists G(result)]} { + set res $G(result) + wapp-trim { +
    %string($res)
    + } + } +} + +# URI: /control +# +# Whenever the form at the top of the application page is submitted, it +# is submitted here. +# +proc wapp-page-control {} { + global G + if {$::G(state)=="config"} { + set lControls [list platform test tcl jobs keep msvc debug] + set G(msvc) 0 + set G(keep) 0 + set G(debug) 0 + } else { + set lControls [list jobs] + } + foreach v $lControls { + if {[wapp-param-exists control_$v]} { + set G($v) [wapp-param control_$v] + } + } + + if {[wapp-param-exists control_run]} { + # This is a "run test" command. + set_test_array + set ::G(state) "running" + } + + if {[wapp-param-exists control_stop]} { + # A "STOP tests" command. + set G(state) "stopped" + set G(result) "Test halted by user" + foreach j $G(test_array) { + set name [dict get $j config] + if { [info exists G(test.$name.channel)] } { + close $G(test.$name.channel) + unset G(test.$name.channel) + slave_test_done $name 1 + } + } + } + + if {[wapp-param-exists control_reset]} { + # A "reset app" command. + set G(state) "config" + wapptest_init + } + + if {$::G(state) == "running"} { + do_some_stuff + } + wapp-redirect / +} + +# URI: /style.css +# +# Return the stylesheet for the application main page. +# +proc wapp-page-style.css {} { + wapp-subst { + + /* The boxes with black borders use this class */ + .border { + border: 3px groove #444444; + padding: 1em; + margin-top: 1em; + margin-bottom: 1em; + } + + /* Float to the right (used for the Run/Stop/Reset button) */ + .right { float: right; } + + /* Style for the large red warning at the top of the page */ + .warning { + color: red; + font-weight: bold; + } + + /* Styles used by cells in the test table */ + .padleft { padding-left: 5ex; } + .nowrap { white-space: nowrap; } + + /* Styles for individual tests, depending on the outcome */ + .testwait { } + .testrunning { color: blue } + .testdone { color: green } + .testfail { color: red } + } +} + +# URI: /script/${state}.js +# +# The last part of this URI is always "config.js", "running.js" or +# "stopped.js", depending on the state of the application. It returns +# the javascript part of the front-end for the requested state to the +# browser. +# +proc wapp-page-script {} { + regexp {[^/]*$} [wapp-param REQUEST_URI] script + + set tcl $::G(tcl) + set keep $::G(keep) + set msvc $::G(msvc) + set debug $::G(debug) + + wapp-subst { + var lElem = \["control_platform", "control_test", "control_msvc", + "control_jobs", "control_debug" + \]; + lElem.forEach(function(e) { + var elem = document.getElementById(e); + elem.addEventListener("change", function() { control.submit() } ); + }) + + elem = document.getElementById("control_tcl"); + elem.value = "%string($tcl)" + + elem = document.getElementById("control_keep"); + elem.checked = %string($keep); + + elem = document.getElementById("control_msvc"); + elem.checked = %string($msvc); + + elem = document.getElementById("control_debug"); + elem.checked = %string($debug); + } + + if {$script != "config.js"} { + wapp-subst { + var lElem = \["control_platform", "control_test", + "control_tcl", "control_keep", "control_msvc", + "control_debug" + \]; + lElem.forEach(function(e) { + var elem = document.getElementById(e); + elem.disabled = true; + }) + } + } + + if {$script == "running.js"} { + wapp-subst { + function reload_tests() { + fetch('tests') + .then( data => data.text() ) + .then( data => { + document.getElementById("tests").innerHTML = data; + }) + .then( data => { + if( document.getElementById("result") ){ + document.location = document.location; + } else { + setTimeout(reload_tests, 1000) + } + }); + } + + setTimeout(reload_tests, 1000) + } + } +} + +# URI: /env +# +# This is for debugging only. Serves no other purpose. +# +proc wapp-page-env {} { + wapp-allow-xorigin-params + wapp-trim { +

    Wapp Environment

    \n
    +    
    %html([wapp-debug-env])
    + } +} + +# URI: /log/dirname/test.log +# +# This URI reads file "dirname/test.log" from disk, wraps it in a
    +# block, and returns it to the browser. Use for viewing log files.
    +#
    +proc wapp-page-log {} {
    +  set log [string range [wapp-param REQUEST_URI] 5 end]
    +  set fd [open $log]
    +  set data [read $fd]
    +  close $fd
    +  wapp-trim {
    +    
    +    %html($data)
    +    
    + } +} + +wapptest_init +wapp-start $argv + diff --git a/test/where.test b/test/where.test index e1b81aa053..264866fa61 100644 --- a/test/where.test +++ b/test/where.test @@ -1438,4 +1438,105 @@ do_execsql_test where-23.0 { SELECT * FROM t1, t2 WHERE a=y AND y=3; } {3 2 3} +#------------------------------------------------------------------------- +# +reset_db +do_execsql_test where-24.0 { + CREATE TABLE t1(a INTEGER PRIMARY KEY, b); + INSERT INTO t1 VALUES(1, 'one'); + INSERT INTO t1 VALUES(2, 'two'); + INSERT INTO t1 VALUES(3, 'three'); + INSERT INTO t1 VALUES(4, 'four'); +} + +foreach {tn sql res} { + 1 "SELECT b FROM t1" {one two three four} + 2 "SELECT b FROM t1 WHERE a<4" {one two three} + 3 "SELECT b FROM t1 WHERE a>1" {two three four} + 4 "SELECT b FROM t1 WHERE a>1 AND a<4" {two three} + + 5 "SELECT b FROM t1 WHERE a>? AND a<4" {} + 6 "SELECT b FROM t1 WHERE a>1 AND a? AND a=? AND a<=4" {} + 8 "SELECT b FROM t1 WHERE a>=1 AND a<=?" {} + 9 "SELECT b FROM t1 WHERE a>=? AND a<=?" {} +} { + set rev [list] + foreach r $res { set rev [concat $r $rev] } + + do_execsql_test where-24.$tn.1 "$sql" $res + do_execsql_test where-24.$tn.2 "$sql ORDER BY rowid" $res + do_execsql_test where-24.$tn.3 "$sql ORDER BY rowid DESC" $rev + + do_execsql_test where-24-$tn.4 " + BEGIN; + DELETE FROM t1; + $sql; + $sql ORDER BY rowid; + $sql ORDER BY rowid DESC; + ROLLBACK; + " +} + +#------------------------------------------------------------------------- +# +reset_db +do_execsql_test where-25.0 { + CREATE TABLE t1(a INTEGER PRIMARY KEY, b, c); + CREATE UNIQUE INDEX i1 ON t1(c); + INSERT INTO t1 VALUES(1, 'one', 'i'); + INSERT INTO t1 VALUES(2, 'two', 'ii'); + + CREATE TABLE t2(a INTEGER PRIMARY KEY, b, c); + CREATE UNIQUE INDEX i2 ON t2(c); + INSERT INTO t2 VALUES(1, 'one', 'i'); + INSERT INTO t2 VALUES(2, 'two', 'ii'); + INSERT INTO t2 VALUES(3, 'three', 'iii'); + + PRAGMA writable_schema = 1; + UPDATE sqlite_master SET rootpage = ( + SELECT rootpage FROM sqlite_master WHERE name = 'i2' + ) WHERE name = 'i1'; +} +db close +sqlite3 db test.db +do_catchsql_test where-25.1 { + DELETE FROM t1 WHERE c='iii' +} {1 {database disk image is malformed}} +do_catchsql_test where-25.2 { + INSERT INTO t1 VALUES(4, 'four', 'iii') + ON CONFLICT(c) DO UPDATE SET b=NULL +} {1 {database disk image is malformed}} + +reset_db +do_execsql_test where-25.3 { + CREATE TABLE t1(a PRIMARY KEY, b, c) WITHOUT ROWID; + CREATE UNIQUE INDEX i1 ON t1(c); + INSERT INTO t1 VALUES(1, 'one', 'i'); + INSERT INTO t1 VALUES(2, 'two', 'ii'); + + CREATE TABLE t2(a INTEGER PRIMARY KEY, b, c); + CREATE UNIQUE INDEX i2 ON t2(c); + INSERT INTO t2 VALUES(1, 'one', 'i'); + INSERT INTO t2 VALUES(2, 'two', 'ii'); + INSERT INTO t2 VALUES(3, 'three', 'iii'); + + PRAGMA writable_schema = 1; + UPDATE sqlite_master SET rootpage = ( + SELECT rootpage FROM sqlite_master WHERE name = 'i2' + ) WHERE name = 'i1'; +} +db close +sqlite3 db test.db +do_catchsql_test where-25.4 { + SELECT * FROM t1 WHERE c='iii' +} {0 {}} +do_catchsql_test where-25.5 { + INSERT INTO t1 VALUES(4, 'four', 'iii') + ON CONFLICT(c) DO UPDATE SET b=NULL +} {1 {corrupt database}} + finish_test + diff --git a/test/window1.test b/test/window1.test index b3073985be..681573896c 100644 --- a/test/window1.test +++ b/test/window1.test @@ -721,4 +721,452 @@ do_execsql_test 17.3 { } {16 13 11} +#------------------------------------------------------------------------- +# Test error cases from chaining window definitions. +# +reset_db +do_execsql_test 18.0 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT, c TEXT, d INTEGER); + INSERT INTO t1 VALUES(1, 'odd', 'one', 1); + INSERT INTO t1 VALUES(2, 'even', 'two', 2); + INSERT INTO t1 VALUES(3, 'odd', 'three', 3); + INSERT INTO t1 VALUES(4, 'even', 'four', 4); + INSERT INTO t1 VALUES(5, 'odd', 'five', 5); + INSERT INTO t1 VALUES(6, 'even', 'six', 6); +} + +foreach {tn sql error} { + 1 { + SELECT c, sum(d) OVER win2 FROM t1 + WINDOW win1 AS (ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING), + win2 AS (win1 ORDER BY b) + } {cannot override frame specification of window: win1} + + 2 { + SELECT c, sum(d) OVER win2 FROM t1 + WINDOW win1 AS (), + win2 AS (win4 ORDER BY b) + } {no such window: win4} + + 3 { + SELECT c, sum(d) OVER win2 FROM t1 + WINDOW win1 AS (), + win2 AS (win1 PARTITION BY d) + } {cannot override PARTITION clause of window: win1} + + 4 { + SELECT c, sum(d) OVER win2 FROM t1 + WINDOW win1 AS (ORDER BY b), + win2 AS (win1 ORDER BY d) + } {cannot override ORDER BY clause of window: win1} +} { + do_catchsql_test 18.1.$tn $sql [list 1 $error] +} + +foreach {tn sql error} { + 1 { + SELECT c, sum(d) OVER (win1 ORDER BY b) FROM t1 + WINDOW win1 AS (ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) + } {cannot override frame specification of window: win1} + + 2 { + SELECT c, sum(d) OVER (win4 ORDER BY b) FROM t1 + WINDOW win1 AS () + } {no such window: win4} + + 3 { + SELECT c, sum(d) OVER (win1 PARTITION BY d) FROM t1 + WINDOW win1 AS () + } {cannot override PARTITION clause of window: win1} + + 4 { + SELECT c, sum(d) OVER (win1 ORDER BY d) FROM t1 + WINDOW win1 AS (ORDER BY b) + } {cannot override ORDER BY clause of window: win1} +} { + do_catchsql_test 18.2.$tn $sql [list 1 $error] +} + +do_execsql_test 18.3.1 { + SELECT group_concat(c, '.') OVER (PARTITION BY b ORDER BY c) + FROM t1 +} {four four.six four.six.two five five.one five.one.three} + +do_execsql_test 18.3.2 { + SELECT group_concat(c, '.') OVER (win1 ORDER BY c) + FROM t1 + WINDOW win1 AS (PARTITION BY b) +} {four four.six four.six.two five five.one five.one.three} + +do_execsql_test 18.3.3 { + SELECT group_concat(c, '.') OVER win2 + FROM t1 + WINDOW win1 AS (PARTITION BY b), + win2 AS (win1 ORDER BY c) +} {four four.six four.six.two five five.one five.one.three} + +do_execsql_test 18.3.4 { + SELECT group_concat(c, '.') OVER (win2) + FROM t1 + WINDOW win1 AS (PARTITION BY b), + win2 AS (win1 ORDER BY c) +} {four four.six four.six.two five five.one five.one.three} + +do_execsql_test 18.3.5 { + SELECT group_concat(c, '.') OVER win5 + FROM t1 + WINDOW win1 AS (PARTITION BY b), + win2 AS (win1), + win3 AS (win2), + win4 AS (win3), + win5 AS (win4 ORDER BY c) +} {four four.six four.six.two five five.one five.one.three} + +#------------------------------------------------------------------------- +# Test RANGE PRECEDING/FOLLOWING when there are string, blob +# and NULL values in the dataset. +# +reset_db +do_execsql_test 19.0 { + CREATE TABLE t1(a, b); + INSERT INTO t1 VALUES + (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), + ('a', 6), ('b', 7), ('c', 8), ('d', 9), ('e', 10); +} +do_execsql_test 19.1 { + SELECT a, sum(b) OVER (ORDER BY a) FROM t1; +} {1 1 2 3 3 6 4 10 5 15 a 21 b 28 c 36 d 45 e 55} + +do_execsql_test 19.2.1 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1; +} {1 3 2 6 3 9 4 12 5 9 a 6 b 7 c 8 d 9 e 10} +do_execsql_test 19.2.2 { + SELECT a, sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY a ASC; +} {1 3 2 6 3 9 4 12 5 9 a 6 b 7 c 8 d 9 e 10} + +do_execsql_test 19.3.1 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 2 PRECEDING AND 1 FOLLOWING + ) FROM t1; +} {1 3 2 6 3 10 4 14 5 12 a 6 b 7 c 8 d 9 e 10} +do_execsql_test 19.3.2 { + SELECT a, sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 1 PRECEDING AND 2 FOLLOWING + ) FROM t1 ORDER BY a ASC; +} {1 3 2 6 3 10 4 14 5 12 a 6 b 7 c 8 d 9 e 10} + + +reset_db +do_execsql_test 20.0 { + CREATE TABLE t1(a, b); + INSERT INTO t1 VALUES + (NULL, 100), (NULL, 100), + (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), + ('a', 6), ('b', 7), ('c', 8), ('d', 9), ('e', 10); +} +do_execsql_test 20.1 { + SELECT a, sum(b) OVER (ORDER BY a) FROM t1; +} { + {} 200 {} 200 1 201 2 203 3 206 4 210 5 215 + a 221 b 228 c 236 d 245 e 255 +} + +do_execsql_test 20.2.1 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1; +} {{} 200 {} 200 1 3 2 6 3 9 4 12 5 9 a 6 b 7 c 8 d 9 e 10} +do_execsql_test 20.2.2 { + SELECT a, sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY a ASC; +} {{} 200 {} 200 1 3 2 6 3 9 4 12 5 9 a 6 b 7 c 8 d 9 e 10} + +do_execsql_test 20.3.1 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 2 PRECEDING AND 1 FOLLOWING + ) FROM t1; +} {{} 200 {} 200 1 3 2 6 3 10 4 14 5 12 a 6 b 7 c 8 d 9 e 10} +do_execsql_test 20.3.2 { + SELECT a, sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 1 PRECEDING AND 2 FOLLOWING + ) FROM t1 ORDER BY a ASC; +} {{} 200 {} 200 1 3 2 6 3 10 4 14 5 12 a 6 b 7 c 8 d 9 e 10} + +#------------------------------------------------------------------------- +do_execsql_test 21.0 { + CREATE TABLE keyword_tab( + current, exclude, filter, following, groups, no, others, over, + partition, preceding, range, ties, unbounded, window + ); +} +do_execsql_test 21.1 { + SELECT + current, exclude, filter, following, groups, no, others, over, + partition, preceding, range, ties, unbounded, window + FROM keyword_tab +} + +#------------------------------------------------------------------------- +foreach {tn expr err} { + 1 4.5 0 + 2 NULL 1 + 3 0.0 0 + 4 0.1 0 + 5 -0.1 1 + 6 '' 1 + 7 '2.0' 0 + 8 '2.0x' 1 + 9 x'1234' 1 + 10 '1.2' 0 +} { + set res {0 1} + if {$err} {set res {1 {frame starting offset must be a non-negative number}} } + do_catchsql_test 22.$tn.1 " + WITH a(x, y) AS ( VALUES(1, 2) ) + SELECT sum(x) OVER ( + ORDER BY y RANGE BETWEEN $expr PRECEDING AND UNBOUNDED FOLLOWING + ) FROM a + " $res + + set res {0 1} + if {$err} {set res {1 {frame ending offset must be a non-negative number}} } + do_catchsql_test 22.$tn.2 " + WITH a(x, y) AS ( VALUES(1, 2) ) + SELECT sum(x) OVER ( + ORDER BY y RANGE BETWEEN UNBOUNDED PRECEDING AND $expr FOLLOWING + ) FROM a + " $res +} + +#------------------------------------------------------------------------- +reset_db +do_execsql_test 23.0 { + CREATE TABLE t5(a, b, c); + CREATE INDEX t5ab ON t5(a, b); +} + +proc do_ordercount_test {tn sql nOrderBy} { + set plan [execsql "EXPLAIN QUERY PLAN $sql"] + uplevel [list do_test $tn [list regexp -all ORDER $plan] $nOrderBy] +} + +do_ordercount_test 23.1 { + SELECT + sum(c) OVER (ORDER BY a, b), + sum(c) OVER (PARTITION BY a ORDER BY b) + FROM t5 +} 0 + +do_ordercount_test 23.2 { + SELECT + sum(c) OVER (ORDER BY b, a), + sum(c) OVER (PARTITION BY b ORDER BY a) + FROM t5 +} 1 + +do_ordercount_test 23.3 { + SELECT + sum(c) OVER (ORDER BY b, a), + sum(c) OVER (ORDER BY c, b) + FROM t5 +} 2 + +do_ordercount_test 23.4 { + SELECT + sum(c) OVER (ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), + sum(c) OVER (ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), + sum(c) OVER (ORDER BY b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) + FROM t5 +} 1 + +do_ordercount_test 23.5 { + SELECT + sum(c) OVER (ORDER BY b+1 ROWS UNBOUNDED PRECEDING), + sum(c) OVER (ORDER BY b+1 RANGE UNBOUNDED PRECEDING), + sum(c) OVER (ORDER BY b+1 GROUPS UNBOUNDED PRECEDING) + FROM t5 +} 1 + +do_ordercount_test 23.6 { + SELECT + sum(c) OVER (ORDER BY b+1 ROWS UNBOUNDED PRECEDING), + sum(c) OVER (ORDER BY b+2 RANGE UNBOUNDED PRECEDING), + sum(c) OVER (ORDER BY b+3 GROUPS UNBOUNDED PRECEDING) + FROM t5 +} 3 + +do_execsql_test 24.1 { + SELECT sum(44) OVER () +} {44} + +do_execsql_test 24.2 { + SELECT lead(44) OVER () +} {{}} + +#------------------------------------------------------------------------- +# +reset_db +do_execsql_test 25.0 { + CREATE TABLE t1 ( t1_id INTEGER PRIMARY KEY ); + CREATE TABLE t2 ( t2_id INTEGER PRIMARY KEY ); + CREATE TABLE t3 ( t3_id INTEGER PRIMARY KEY ); + + INSERT INTO t1 VALUES(1), (3), (5); + INSERT INTO t2 VALUES (3), (5); + INSERT INTO t3 VALUES(10), (11), (12); +} + +do_execsql_test 25.1 { + SELECT t1.* FROM t1, t2 WHERE + t1_id=t2_id AND t1_id IN ( + SELECT t1_id + row_number() OVER ( ORDER BY t1_id ) FROM t3 + ) +} + +do_execsql_test 25.2 { + SELECT t1.* FROM t1, t2 WHERE + t1_id=t2_id AND t1_id IN ( + SELECT row_number() OVER ( ORDER BY t1_id ) FROM t3 + ) +} {3} + +#------------------------------------------------------------------------- +reset_db +do_execsql_test 26.0 { + CREATE TABLE t1(x); + CREATE TABLE t2(c); +} + +do_execsql_test 26.1 { + SELECT ( SELECT row_number() OVER () FROM ( SELECT c FROM t1 ) ) FROM t2 +} {} + +do_execsql_test 26.2 { + INSERT INTO t1 VALUES(1), (2), (3), (4); + INSERT INTO t2 VALUES(2), (6), (8), (4); + SELECT c, c IN ( + SELECT row_number() OVER () FROM ( SELECT c FROM t1 ) + ) FROM t2 +} {2 1 6 0 8 0 4 1} + +do_execsql_test 26.3 { + DELETE FROM t1; + DELETE FROM t2; + + INSERT INTO t2 VALUES(1), (2), (3), (4); + INSERT INTO t1 VALUES(1), (1), (2), (3), (3), (3), (3), (4), (4); + + SELECT c, c IN ( + SELECT row_number() OVER () FROM ( SELECT 1 FROM t1 WHERE x=c ) + ) FROM t2 +} {1 1 2 0 3 1 4 0} + +#------------------------------------------------------------------------- +reset_db +do_execsql_test 27.0 { + CREATE TABLE t1(x); + INSERT INTO t1 VALUES(NULL), (1), (2), (3), (4), (5); +} +do_execsql_test 27.1 { + SELECT min(x) FROM t1; +} {1} +do_execsql_test 27.2 { + SELECT min(x) OVER win FROM t1 + WINDOW win AS (ORDER BY rowid ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) +} {1 1 1 2 3 4} + +#------------------------------------------------------------------------- + +reset_db +do_execsql_test 28.1.1 { + CREATE TABLE t1(a INTEGER PRIMARY KEY, b CHAR(1), c CHAR(2), d ANY); + INSERT INTO t1 VALUES (3, 'C', 'cc', 1.0); + INSERT INTO t1 VALUES (13,'M', 'cc', NULL); +} + +do_execsql_test 28.1.2 { + SELECT group_concat(b,'') OVER w1 FROM t1 + WINDOW w1 AS (ORDER BY a RANGE BETWEEN 3 PRECEDING AND 1 PRECEDING) +} { + {} {} +} + +do_execsql_test 28.2.1 { + CREATE TABLE t2(a TEXT, b INTEGER); + INSERT INTO t2 VALUES('A', NULL); + INSERT INTO t2 VALUES('B', NULL); +} + +do_execsql_test 28.2.1 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a INTEGER PRIMARY KEY, b CHAR(1), c CHAR(2), d ANY); + INSERT INTO t1 VALUES + (10,'J', 'cc', NULL), + (11,'K', 'cc', 'xyz'), + (13,'M', 'cc', NULL); +} + +do_execsql_test 28.2.2 { + SELECT a, b, c, quote(d), group_concat(b,'') OVER w1, '|' FROM t1 + WINDOW w1 AS + (ORDER BY d DESC RANGE BETWEEN 7.0 PRECEDING AND 2.5 PRECEDING) + ORDER BY c, d, a; +} { + 10 J cc NULL JM | + 13 M cc NULL JM | + 11 K cc 'xyz' K | +} + +#------------------------------------------------------------------------- +reset_db + +do_execsql_test 29.1 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a INTEGER PRIMARY KEY, b CHAR(1), c CHAR(2), d ANY); + INSERT INTO t1 VALUES + (1, 'A', 'aa', 2.5), + (2, 'B', 'bb', 3.75), + (3, 'C', 'cc', 1.0), + (4, 'D', 'cc', 8.25), + (5, 'E', 'bb', 6.5), + (6, 'F', 'aa', 6.5), + (7, 'G', 'aa', 6.0), + (8, 'H', 'bb', 9.0), + (9, 'I', 'aa', 3.75), + (10,'J', 'cc', NULL), + (11,'K', 'cc', 'xyz'), + (12,'L', 'cc', 'xyZ'), + (13,'M', 'cc', NULL); +} + +do_execsql_test 29.2 { + SELECT a, b, c, quote(d), group_concat(b,'') OVER w1, '|' FROM t1 + WINDOW w1 AS + (PARTITION BY c ORDER BY d DESC + RANGE BETWEEN 7.0 PRECEDING AND 2.5 PRECEDING) + ORDER BY c, d, a; +} { + 1 A aa 2.5 FG | + 9 I aa 3.75 F | + 7 G aa 6 {} | + 6 F aa 6.5 {} | + 2 B bb 3.75 HE | + 5 E bb 6.5 H | + 8 H bb 9 {} | + 10 J cc NULL JM | + 13 M cc NULL JM | + 3 C cc 1 {} | + 4 D cc 8.25 {} | + 12 L cc 'xyZ' L | + 11 K cc 'xyz' K | +} + finish_test + + diff --git a/test/window3.tcl b/test/window3.tcl index 101244e2a4..f2c596c6fe 100644 --- a/test/window3.tcl +++ b/test/window3.tcl @@ -21,7 +21,6 @@ execsql_test 1.0 { DROP TABLE IF EXISTS t2; CREATE TABLE t2(a INTEGER PRIMARY KEY, b INTEGER); INSERT INTO t2(a, b) VALUES - (1,0), (2,74), (3,41), (4,74), (5,23), (6,99), (7,26), (8,33), (9,2), (10,89), (11,81), (12,96), (13,59), (14,38), (15,68), (16,39), (17,62), (18,91), (19,46), (20,6), (21,99), (22,97), (23,27), (24,46), (25,78), (26,54), (27,97), (28,8), (29,67), (30,29), (31,93), (32,84), (33,77), @@ -73,6 +72,11 @@ foreach {tn window} { 15 "ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING" 16 "ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" 17 "ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING" + + 18 "ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW" + 19 "ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES" + 20 "ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP" + } { execsql_test 1.$tn.2.1 "SELECT max(b) OVER ( ORDER BY a $window ) FROM t2" execsql_test 1.$tn.2.2 "SELECT min(b) OVER ( ORDER BY a $window ) FROM t2" @@ -307,6 +311,28 @@ foreach {tn window} { SELECT string_agg(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 $window) FROM t2 " + execsql_test 1.$tn.14.7 " + SELECT string_agg(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 $window) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 + " + + execsql_test 1.$tn.14.8 " + SELECT string_agg(CAST(b AS TEXT), '.') OVER (win1 $window) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 + " + + execsql_test 1.$tn.14.9 " + SELECT string_agg(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 $window) + ORDER BY 1 + " + execsql_test 1.$tn.15.1 " SELECT count(*) OVER win, string_agg(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 diff --git a/test/window3.test b/test/window3.test index a9e0c64eb8..4f759abb7e 100644 --- a/test/window3.test +++ b/test/window3.test @@ -24,7 +24,6 @@ do_execsql_test 1.0 { DROP TABLE IF EXISTS t2; CREATE TABLE t2(a INTEGER PRIMARY KEY, b INTEGER); INSERT INTO t2(a, b) VALUES - (1,0), (2,74), (3,41), (4,74), (5,23), (6,99), (7,26), (8,33), (9,2), (10,89), (11,81), (12,96), (13,59), (14,38), (15,68), (16,39), (17,62), (18,91), (19,46), (20,6), (21,99), (22,97), (23,27), (24,46), (25,78), (26,54), (27,97), (28,8), (29,67), (30,29), (31,93), (32,84), (33,77), @@ -49,82 +48,292 @@ do_execsql_test 1.0 { (173,33), (174,15), (175,34), (176,36), (177,99), (178,3), (179,95), (180,69), (181,58), (182,52), (183,30), (184,50), (185,84), (186,10), (187,84), (188,33), (189,21), (190,39), (191,44), (192,58), (193,30), (194,38), - (195,34), (196,83), (197,27), (198,82), (199,17), (200,7), (201,5); + (195,34), (196,83), (197,27), (198,82), (199,17), (200,7); } {} do_execsql_test 1.1 { SELECT max(b) OVER ( ORDER BY a ) FROM t2 -} {0 74 74 74 74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {89 89 96 96 96 96 96 96 96 96 96 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99} do_execsql_test 1.1.2.1 { SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 74 74 74 74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {89 89 96 96 96 96 96 96 96 96 96 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99} do_execsql_test 1.1.2.2 { SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {89 81 81 59 38 38 38 38 38 38 6 6 6 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 6 6 6 6 6 3 3 3 3 3 3 3 3 3 3 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1} do_execsql_test 1.1.3.1 { SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.1.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.1.3.3 { SELECT row_number() OVER ( RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.1.4.1 { SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.1.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.1.4.3 { SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.1.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.1.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.1.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.1.5.1 { SELECT rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.1.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.1.5.3 { SELECT rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.1.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.1.5.5 { SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.1.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.1.6.1 { SELECT @@ -132,7 +341,33 @@ do_execsql_test 1.1.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.1.7.1 { @@ -140,11 +375,13 @@ do_test 1.1.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -155,11 +392,13 @@ do_test 1.1.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -170,11 +409,13 @@ do_test 1.1.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -185,11 +426,13 @@ do_test 1.1.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -200,11 +443,13 @@ do_test 1.1.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -215,11 +460,13 @@ do_test 1.1.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -230,11 +477,13 @@ do_test 1.1.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -245,11 +494,13 @@ do_test 1.1.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -260,11 +511,13 @@ do_test 1.1.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -275,11 +528,13 @@ do_test 1.1.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -290,11 +545,13 @@ do_test 1.1.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -305,11 +562,13 @@ do_test 1.1.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -320,11 +579,13 @@ do_test 1.1.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -335,11 +596,13 @@ do_test 1.1.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -350,11 +613,13 @@ do_test 1.1.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -365,11 +630,13 @@ do_test 1.1.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -380,11 +647,13 @@ do_test 1.1.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -395,11 +664,13 @@ do_test 1.1.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -410,250 +681,1912 @@ do_test 1.1.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.1.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 76 44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206} +} {99 92 108 72 52 83 55 79 109 65 26 120 119 50 + 70 103 80 124 36 96 59 124 116 110 57 51 52 130 + 103 74 87 48 128 117 105 136 131 71 133 92 109 63 + 84 109 57 146 78 147 113 74 88 150 87 110 65 121 + 106 110 124 85 145 107 161 171 150 156 80 171 120 + 109 158 114 111 136 147 87 173 124 168 173 162 132 + 101 154 167 190 161 110 156 195 198 102 123 177 169 + 140 111 180 119 160 197 152 124 121 134 146 147 132 + 213 141 193 200 210 157 132 136 175 161 218 188 226 + 191 187 208 211 179 138 144 223 196 214 170 212 202 + 163 184 172 173 195 229 240 187 210 200 163 227 228 + 223 191 252 235 225 243 172 187 202 179 179 182 231 + 261 207 263 206 189 209 212 276 181 274 249 239 234 + 213 234 269 196 271 221 210 229 235 250 223 232 229 + 279 224 280 216 207} do_execsql_test 1.1.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.1.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 65 102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276} +} {65 102 87 138 57 181 80 111 26 48 144 207 36 121 + 132 101 163 172 196 119 136 63 124 179 110 179 182 + 74 132 189 51 52 85 216 163 134 123 210 78 141 57 + 187 71 87 172 173 50 224 88 59 111 170 109 213 + 223 146 147 84 114 191 206 221 157 161 209 229 74 + 140 107 187 207 212 124 202 52 232 55 184 229 106 + 132 152 120 92 110 179 235 65 70 87 110 195 200 + 175 234 160 234 136 80 113 187 109 121 124 196 156 + 210 239 250 72 109 188 202 191 105 154 79 231 147 + 225 103 161 169 223 96 83 249 212 162 227 228 167 + 180 193 117 177 214 145 208 235 150 110 211 103 158 + 200 168 229 92 156 243 280 279 116 173 269 271 131 + 133 223 128 173 197 210 99 150 161 147 218 240 109 + 136 146 261 263 124 130 252 171 190 213 274 108 195 + 226 119 124 171 198 120 276} do_execsql_test 1.1.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 196 134 109 213 223 106 234 191 212 168 229 147 218 240 65 102 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 11 87 138 63 124 179 78 141 84 120 234 79 231 162 227 228 280 57 181 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 80 182 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 111 206 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 26 51 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 48 144 207 216 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 36 121 132 88 52 232 156 210 239 250 83 103 158 210 171 198 101 163 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276} +} {196 134 109 213 223 106 234 191 212 168 229 147 218 + 240 65 102 119 136 123 210 146 147 132 152 160 105 + 154 92 156 243 109 136 146 261 263 87 138 63 124 + 179 78 141 84 120 234 79 231 162 227 228 280 57 + 181 110 179 57 187 114 191 206 221 92 110 136 147 + 167 180 193 279 124 130 252 80 182 71 157 161 209 + 229 179 235 80 225 117 177 214 116 173 269 271 171 + 111 74 132 189 87 74 140 113 187 103 161 169 145 + 208 235 131 133 223 190 213 274 26 51 52 85 172 + 173 107 187 207 212 65 70 109 121 124 223 150 128 + 108 195 226 48 144 207 216 50 224 124 202 87 110 + 195 200 196 96 110 211 173 197 119 124 36 121 132 + 88 52 232 156 210 239 250 83 103 158 210 171 198 + 101 163 172 163 59 111 170 55 184 229 175 72 109 + 188 202 249 200 99 150 161 120 276} do_execsql_test 1.1.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.1.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.1.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} 29 {} {} {} 46 62 62 {} {} 16 {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 {} 74 {} 27 {} 22 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} {} {} 23 {} 74 93 30 23 29 3 1 41 {} 65 33 2 98 86 89 25 76 {} 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33 99} +} {{} {} {} {} {} {} {} {} {} {} 39 {} {} {} {} + {} {} {} 91 {} {} {} {} {} 77 54 54 {} {} {} + {} 62 {} {} {} {} {} 23 {} {} {} 97 86 {} 59 + {} 84 {} {} 78 65 {} 16 90 81 {} 59 56 40 54 + {} 85 {} {} {} {} 38 {} 32 47 {} 74 35 47 98 + 96 {} 24 {} {} 29 12 46 36 53 {} 81 27 56 {} + {} 81 93 63 81 91 68 53 99 89 13 12 97 91 29 + 7 7 78 35 84 53 84 58 61 91 99 15 61 98 16 5 + 75 56 2 37 3 96 62 95 43 63 35 78 16 67 43 16 + 16 90 72 98 85 56 90 46 29 29 4 74 74 2 76 41 + 46 77 24 27 97 46 89 1 85 1 74 78 61 85 51 59 + 35 30 56 25 47 28 73 6 73 74 93 43 3 56 47 85 + 61 61 93 9 97 62} do_execsql_test 1.1.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 {} 21 {} {} {} {} 21 {} {} {} 21 {} {} {} {} {} {} 12 {} {} {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} 55 {} 15 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} {} {} 29 29 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 91 {} 11 {} {} {} {} + 11 {} {} {} {} {} {} {} {} {} 32 {} {} {} 32 + {} {} 12 {} {} {} {} {} {} {} 43 {} {} {} {} + {} {} {} {} {} {} {} 33 {} 43 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} 9 9 {} {} {}} do_execsql_test 1.1.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 10 11 11 11 11 11 12 12 12 12 12 13 13 13 14 14 14 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 19 19 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 25 25 25 25 26 26 27 27 28 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 31 31 31 32 32 33 33 33 33 33 33 33 34 34 34 35 35 35 35 35 35 36 36 36 36 36 36 36 36 36 36 36 37 37 37 38 38 38 38 38 39 39 39 39 39 39 40 40 40 41 41 41 41 42 42 42 43 43 43 43 43 43 43 43 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47} +} {{} 1 2 2 2 2 3 3 4 5 5 5 6 6 6 7 7 7 7 + 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 12 + 12 12 12 12 12 13 13 14 14 15 15 15 15 15 15 + 16 16 16 16 16 16 17 17 17 17 19 19 19 19 20 + 20 21 21 21 21 21 21 22 22 22 22 22 23 23 23 + 24 25 25 26 26 27 27 27 27 27 27 29 29 29 30 + 30 30 31 31 31 31 31 32 33 33 33 33 33 33 33 + 33 33 33 33 34 34 34 34 34 34 34 35 35 36 36 + 36 37 37 37 37 37 37 38 38 38 38 38 38 39 39 + 39 39 39 40 41 41 41 41 41 42 43 43 43 43 43 + 44 44 44 44 46 46 46 47 47 47 47 47 47 47 47 + 47 47 47 49 49 49 50 51 51 51 52 52 52 53 53 + 54 54 55 55} do_execsql_test 1.1.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} {} 31 30 {} {} {} 1 40 {} 50 11 81 42 40 {} 50 81 40 {} {} 50 {} 52 {} 41 81 {} 41 {} 2 30 2 81 82 53 {} 10 {} {} 81 {} 41 10 81 30 81 {} 3 3 23 {} 3 61 80 {} 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 20 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 40 {} {} {} 40 41 50 {} {} {} {} + 50 {} {} {} 41 {} 10 91 61 {} 30 {} 10 61 30 + {} {} 10 {} {} {} {} 1 {} 22 80 22 91 93 {} + {} 30 {} {} 91 {} 1 30 91 80 91 {} 43 {} 74 + 21 20 {} {} 74 21 21 2 74 33 81 21 64 64 2 21 + 93 62 14 14 3 91 11 24 55 93 93 62 90 91 55 3 + 24 14 24 91 55 15 72 60 72 61 61 34 43 43 43 + 61 12 4 15 15 51 51 12 23 12 12 25 41 25 13 + 94 12 70 12 84 32 84 94 70 33 12 12 32 41 91 + 70 22 33 84 80 31 75 84 53 75 80 84 80 53 53 + 53 22 44 63 42 95 31 63 44 44 31 90 74 52 63 + 31 63 1 42 90 90 95 3 42} do_execsql_test 1.1.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.11.1 { SELECT first_value(b) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.1.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 81 + 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 + 81 81 81 81 81 62 62 62 62 62 62 62 62 62 62 + 62 62 62 62 62 62 93 93 93 93 93 93 93 93 93 + 93 93 93 93 93 93 93 93 93 93 93 93 54 54 54 + 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 + 54 65 65 65 65 65 65 65 65 65 65 65 65 65 65 + 65 65 65 65 65 65 65 96 96 96 96 96 96 96 96 + 96 96 96 96 96 96 96 96 96 96 96 96 96 97 97 + 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 + 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 + 38 38 38 38 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.1.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1} do_execsql_test 1.1.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9} +} {10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9} do_execsql_test 1.1.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90} do_execsql_test 1.1.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.1.12.1 { SELECT lead(b,b) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.1.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.1.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.13.1 { SELECT lag(b,b) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.1.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.1.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.1.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.1.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.1.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0.74 0.74.41 0.74.41.74 0.74.41.74.23 0.74.41.74.23.99 0.74.41.74.23.99.26 0.74.41.74.23.99.26.33 0.74.41.74.23.99.26.33.2 0.74.41.74.23.99.26.33.2.89 0.74.41.74.23.99.26.33.2.89.81 0.74.41.74.23.99.26.33.2.89.81.96 0.74.41.74.23.99.26.33.2.89.81.96.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5} +} {89 89.81 89.81.96 89.81.96.59 89.81.96.59.38 89.81.96.59.38.68 + 89.81.96.59.38.68.39 89.81.96.59.38.68.39.62 89.81.96.59.38.68.39.62.91 + 89.81.96.59.38.68.39.62.91.46 89.81.96.59.38.68.39.62.91.46.6 + 89.81.96.59.38.68.39.62.91.46.6.99 89.81.96.59.38.68.39.62.91.46.6.99.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7} do_execsql_test 1.1.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 0.90.40.30.80.20.90.60.70.80.90.30 0.90.40.30.80.20.90.60.70.80.90.30.50 0.90.40.30.80.20.90.60.70.80.90.30.50.10 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 41 41.81 41.81.91 41.81.91.61 41.81.91.61.91 41.81.91.61.91.91 41.81.91.61.91.91.1 41.81.91.61.91.91.1.81 41.81.91.61.91.91.1.81.41 41.81.91.61.91.91.1.81.41.61 41.81.91.61.91.91.1.81.41.61.1 41.81.91.61.91.91.1.81.41.61.1.21 41.81.91.61.91.91.1.81.41.61.1.21.11 41.81.91.61.91.91.1.81.41.61.1.21.11.51 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 2 2.62 2.62.12 2.62.12.32 2.62.12.32.22 2.62.12.32.22.42 2.62.12.32.22.42.2 2.62.12.32.22.42.2.72 2.62.12.32.22.42.2.72.12 2.62.12.32.22.42.2.72.12.22 2.62.12.32.22.42.2.72.12.22.2 2.62.12.32.22.42.2.72.12.22.2.72 2.62.12.32.22.42.2.72.12.22.2.72.72 2.62.12.32.22.42.2.72.12.22.2.72.72.12 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 23 23.33 23.33.93 23.33.93.23 23.33.93.23.93 23.33.93.23.93.43 23.33.93.23.93.43.3 23.33.93.23.93.43.3.43 23.33.93.23.93.43.3.43.33 23.33.93.23.93.43.3.43.33.53 23.33.93.23.93.43.3.43.33.53.63 23.33.93.23.93.43.3.43.33.53.63.73 23.33.93.23.93.43.3.43.33.53.63.73.13 23.33.93.23.93.43.3.43.33.53.63.73.13.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 74 74.74 74.74.54 74.74.54.84 74.74.54.84.74 74.74.54.84.74.24 74.74.54.84.74.24.4 74.74.54.84.74.24.4.94 74.74.54.84.74.24.4.94.84 74.74.54.84.74.24.4.94.84.74 74.74.54.84.74.24.4.94.84.74.34 74.74.54.84.74.24.4.94.84.74.34.34 74.74.54.84.74.24.4.94.84.74.34.34.44 74.74.54.84.74.24.4.94.84.74.34.34.44.74 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65 65.35 65.35.85 65.35.85.85 65.35.85.85.55 65.35.85.85.55.15 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 65.35.85.85.55.15.25.75.95 65.35.85.85.55.15.25.75.95.65 65.35.85.85.55.15.25.75.95.65.65 65.35.85.85.55.15.25.75.95.65.65.35 65.35.85.85.55.15.25.75.95.65.65.35.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 26 26.96 26.96.46 26.96.46.6 26.96.46.6.46 26.96.46.6.46.16 26.96.46.6.46.16.16 26.96.46.6.46.16.16.86 26.96.46.6.46.16.16.86.56 26.96.46.6.46.16.16.86.56.56 26.96.46.6.46.16.16.86.56.56.56 26.96.46.6.46.16.16.86.56.56.56.16 26.96.46.6.46.16.16.86.56.56.56.16.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 97 97.27 97.27.97 97.27.97.67 97.27.97.67.77 97.27.97.67.77.47 97.27.97.67.77.47.7 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38 38.68 38.68.78 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 38.68.78.8.28.98.78.58.98 38.68.78.8.28.98.78.58.98.8 38.68.78.8.28.98.78.58.98.8.88 38.68.78.8.28.98.78.58.98.8.88.8 38.68.78.8.28.98.78.58.98.8.88.8.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 99 99.89 99.89.59 99.89.59.39 99.89.59.39.99 99.89.59.39.99.29 99.89.59.39.99.29.59 99.89.59.39.99.29.59.89 99.89.59.39.99.29.59.89.89 99.89.59.39.99.29.59.89.89.29 99.89.59.39.99.29.59.89.89.29.9 99.89.59.39.99.29.59.89.89.29.9.79 99.89.59.39.99.29.59.89.89.29.9.79.49 99.89.59.39.99.29.59.89.89.29.9.79.49.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 90.40.30.80.20.90 + 90.40.30.80.20.90.60 90.40.30.80.20.90.60.70 90.40.30.80.20.90.60.70.80 + 90.40.30.80.20.90.60.70.80.90 90.40.30.80.20.90.60.70.80.90.30 + 90.40.30.80.20.90.60.70.80.90.30.50 + 90.40.30.80.20.90.60.70.80.90.30.50.10 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 81 81.91 81.91.61 + 81.91.61.91 81.91.61.91.91 81.91.61.91.91.1 81.91.61.91.91.1.81 + 81.91.61.91.91.1.81.41 81.91.61.91.91.1.81.41.61 + 81.91.61.91.91.1.81.41.61.1 81.91.61.91.91.1.81.41.61.1.21 + 81.91.61.91.91.1.81.41.61.1.21.11 81.91.61.91.91.1.81.41.61.1.21.11.51 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 62 62.12 + 62.12.32 62.12.32.22 62.12.32.22.42 62.12.32.22.42.2 + 62.12.32.22.42.2.72 62.12.32.22.42.2.72.12 62.12.32.22.42.2.72.12.22 + 62.12.32.22.42.2.72.12.22.2 62.12.32.22.42.2.72.12.22.2.72 + 62.12.32.22.42.2.72.12.22.2.72.72 62.12.32.22.42.2.72.12.22.2.72.72.12 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 93 93.23 93.23.93 + 93.23.93.43 93.23.93.43.3 93.23.93.43.3.43 93.23.93.43.3.43.33 + 93.23.93.43.3.43.33.53 93.23.93.43.3.43.33.53.63 + 93.23.93.43.3.43.33.53.63.73 93.23.93.43.3.43.33.53.63.73.13 + 93.23.93.43.3.43.33.53.63.73.13.73 93.23.93.43.3.43.33.53.63.73.13.73.73 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 54 54.84 + 54.84.74 54.84.74.24 54.84.74.24.4 54.84.74.24.4.94 + 54.84.74.24.4.94.84 54.84.74.24.4.94.84.74 54.84.74.24.4.94.84.74.34 + 54.84.74.24.4.94.84.74.34.34 54.84.74.24.4.94.84.74.34.34.44 + 54.84.74.24.4.94.84.74.34.34.44.74 54.84.74.24.4.94.84.74.34.34.44.74.64 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65 65.35 + 65.35.85 65.35.85.85 65.35.85.85.55 65.35.85.85.55.15 + 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 65.35.85.85.55.15.25.75.95 + 65.35.85.85.55.15.25.75.95.65 65.35.85.85.55.15.25.75.95.65.65 + 65.35.85.85.55.15.25.75.95.65.65.35 65.35.85.85.55.15.25.75.95.65.65.35.5 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 96 96.46 + 96.46.6 96.46.6.46 96.46.6.46.16 96.46.6.46.16.16 + 96.46.6.46.16.16.86 96.46.6.46.16.16.86.56 96.46.6.46.16.16.86.56.56 + 96.46.6.46.16.16.86.56.56.56 96.46.6.46.16.16.86.56.56.56.16 + 96.46.6.46.16.16.86.56.56.56.16.36 96.46.6.46.16.16.86.56.56.56.16.36.76 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 97 97.27 + 97.27.97 97.27.97.67 97.27.97.67.77 97.27.97.67.77.47 + 97.27.97.67.77.47.7 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 + 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 + 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38 38.68 + 38.68.78 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 + 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 38.68.78.8.28.98.78.58.98 + 38.68.78.8.28.98.78.58.98.8 38.68.78.8.28.98.78.58.98.8.88 + 38.68.78.8.28.98.78.58.98.8.88.8 38.68.78.8.28.98.78.58.98.8.88.8.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 89 89.59 89.59.39 + 89.59.39.99 89.59.39.99.29 89.59.39.99.29.59 89.59.39.99.29.59.89 + 89.59.39.99.29.59.89.89 89.59.39.99.29.59.89.89.29 + 89.59.39.99.29.59.89.89.29.9 89.59.39.99.29.59.89.89.29.9.79 + 89.59.39.99.29.59.89.89.29.9.79.49 89.59.39.99.29.59.89.89.29.9.79.49.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.1.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.1 0.1.1 0.1.1.2 0.1.1.2.2 0.1.1.2.2.2 0.1.1.2.2.2.3 0.1.1.2.2.2.3.3 0.1.1.2.2.2.3.3.4 0.1.1.2.2.2.3.3.4.5 0.1.1.2.2.2.3.3.4.5.5 0.1.1.2.2.2.3.3.4.5.5.6 0.1.1.2.2.2.3.3.4.5.5.6.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99} +} {1 1.1 1.1.2 1.1.2.2 1.1.2.2.3 1.1.2.2.3.3 1.1.2.2.3.3.4 + 1.1.2.2.3.3.4.5 1.1.2.2.3.3.4.5.6 1.1.2.2.3.3.4.5.6.7 + 1.1.2.2.3.3.4.5.6.7.7 1.1.2.2.3.3.4.5.6.7.7.7 1.1.2.2.3.3.4.5.6.7.7.7.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99} do_execsql_test 1.1.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.10 0.10.20 0.10.20.30 0.10.20.30.30 0.10.20.30.30.30 0.10.20.30.30.30.40 0.10.20.30.30.30.40.50 0.10.20.30.30.30.40.50.60 0.10.20.30.30.30.40.50.60.70 0.10.20.30.30.30.40.50.60.70.80 0.10.20.30.30.30.40.50.60.70.80.80 0.10.20.30.30.30.40.50.60.70.80.80.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 1 1.1 1.1.11 1.1.11.11 1.1.11.11.21 1.1.11.11.21.21 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 1.1.11.11.21.21.31.31.41 1.1.11.11.21.21.31.31.41.41 1.1.11.11.21.21.31.31.41.41.41 1.1.11.11.21.21.31.31.41.41.41.51 1.1.11.11.21.21.31.31.41.41.41.51.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 2 2.2 2.2.2 2.2.2.12 2.2.2.12.12 2.2.2.12.12.12 2.2.2.12.12.12.22 2.2.2.12.12.12.22.22 2.2.2.12.12.12.22.22.32 2.2.2.12.12.12.22.22.32.42 2.2.2.12.12.12.22.22.32.42.52 2.2.2.12.12.12.22.22.32.42.52.62 2.2.2.12.12.12.22.22.32.42.52.62.62 2.2.2.12.12.12.22.22.32.42.52.62.62.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3 3.3 3.3.13 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.23 3.3.13.13.23.23.23.33 3.3.13.13.23.23.23.33.33 3.3.13.13.23.23.23.33.33.33 3.3.13.13.23.23.23.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 4 4.14 4.14.24 4.14.24.34 4.14.24.34.34 4.14.24.34.34.34 4.14.24.34.34.34.34 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 5 5.5 5.5.15 5.5.15.15 5.5.15.15.15 5.5.15.15.15.25 5.5.15.15.15.25.35 5.5.15.15.15.25.35.35 5.5.15.15.15.25.35.35.55 5.5.15.15.15.25.35.35.55.55 5.5.15.15.15.25.35.35.55.55.65 5.5.15.15.15.25.35.35.55.55.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 6 6.16 6.16.16 6.16.16.16 6.16.16.16.26 6.16.16.16.26.26 6.16.16.16.26.26.26 6.16.16.16.26.26.26.36 6.16.16.16.26.26.26.36.36 6.16.16.16.26.26.26.36.36.36 6.16.16.16.26.26.26.36.36.36.36 6.16.16.16.26.26.26.36.36.36.36.46 6.16.16.16.26.26.26.36.36.36.36.46.46 6.16.16.16.26.26.26.36.36.36.36.46.46.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7 7.7 7.7.7 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 7.7.7.17.27.27.37.37 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47.57 7.7.7.17.27.27.37.37.47.47.47.47.57.67 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8 8.8 8.8.8 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 8.8.8.28.38.38.58.58 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 8.8.8.28.38.38.58.58.58.58.68.78.78 8.8.8.28.38.38.58.58.58.58.68.78.78.88 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9 9.9 9.9.9 9.9.9.19 9.9.9.19.29 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 9.9.9.19.29.29.29.39.39 9.9.9.19.29.29.29.39.39.39 9.9.9.19.29.29.29.39.39.39.49 9.9.9.19.29.29.29.39.39.39.49.59 9.9.9.19.29.29.29.39.39.39.49.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99} +} {10 10.20 10.20.30 10.20.30.30 10.20.30.30.30 10.20.30.30.30.40 + 10.20.30.30.30.40.50 10.20.30.30.30.40.50.60 10.20.30.30.30.40.50.60.70 + 10.20.30.30.30.40.50.60.70.80 10.20.30.30.30.40.50.60.70.80.80 + 10.20.30.30.30.40.50.60.70.80.80.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 1 1.1 1.1.11 1.1.11.11 + 1.1.11.11.21 1.1.11.11.21.21 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 + 1.1.11.11.21.21.31.31.41 1.1.11.11.21.21.31.31.41.41 + 1.1.11.11.21.21.31.31.41.41.51 1.1.11.11.21.21.31.31.41.41.51.61 + 1.1.11.11.21.21.31.31.41.41.51.61.61 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 2 2.2 + 2.2.12 2.2.12.12 2.2.12.12.12 2.2.12.12.12.22 2.2.12.12.12.22.22 + 2.2.12.12.12.22.22.32 2.2.12.12.12.22.22.32.42 + 2.2.12.12.12.22.22.32.42.52 2.2.12.12.12.22.22.32.42.52.62 + 2.2.12.12.12.22.22.32.42.52.62.62 2.2.12.12.12.22.22.32.42.52.62.62.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3 3.3 3.3.13 + 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.33 + 3.3.13.13.23.23.33.33 3.3.13.13.23.23.33.33.33 + 3.3.13.13.23.23.33.33.33.33 3.3.13.13.23.23.33.33.33.33.43 + 3.3.13.13.23.23.33.33.33.33.43.43 3.3.13.13.23.23.33.33.33.33.43.43.53 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 4 4.14 + 4.14.24 4.14.24.34 4.14.24.34.34 4.14.24.34.34.34 + 4.14.24.34.34.34.34 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 + 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 + 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 5 5.15 + 5.15.15 5.15.15.15 5.15.15.15.25 5.15.15.15.25.35 + 5.15.15.15.25.35.35 5.15.15.15.25.35.35.55 5.15.15.15.25.35.35.55.55 + 5.15.15.15.25.35.35.55.55.65 5.15.15.15.25.35.35.55.55.65.65 + 5.15.15.15.25.35.35.55.55.65.65.65 5.15.15.15.25.35.35.55.55.65.65.65.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 6 6.16 + 6.16.16 6.16.16.16 6.16.16.16.26 6.16.16.16.26.26 + 6.16.16.16.26.26.36 6.16.16.16.26.26.36.36 6.16.16.16.26.26.36.36.36 + 6.16.16.16.26.26.36.36.36.36 6.16.16.16.26.26.36.36.36.36.46 + 6.16.16.16.26.26.36.36.36.36.46.46 6.16.16.16.26.26.36.36.36.36.46.46.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7 7.7 + 7.7.7 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 + 7.7.7.17.27.27.37.37 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 + 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 + 7.7.7.17.27.27.37.37.47.47.47.47.57 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8 8.8 8.8.8 + 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 + 8.8.8.28.38.38.58.58 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 + 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 + 8.8.8.28.38.38.58.58.58.58.68.78.78 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9 9.9 9.9.9 9.9.9.19 + 9.9.9.19.29 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 + 9.9.9.19.29.29.29.39.39 9.9.9.19.29.29.29.39.39.39 + 9.9.9.19.29.29.29.39.39.39.49 9.9.9.19.29.29.29.39.39.39.49.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99} do_execsql_test 1.1.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 0.90.40.30.80.20.90.60.70.80.90.30 0.90.40.30.80.20.90.60.70.80.90.30.50 0.90.40.30.80.20.90.60.70.80.90.30.50.10 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 90.40.30.80.20.90 + 90.40.30.80.20.90.60 90.40.30.80.20.90.60.70 90.40.30.80.20.90.60.70.80 + 90.40.30.80.20.90.60.70.80.90 90.40.30.80.20.90.60.70.80.90.30 + 90.40.30.80.20.90.60.70.80.90.30.50 + 90.40.30.80.20.90.60.70.80.90.30.50.10 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.1.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.1.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.1.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.1.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.1.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 {} 2 74 3 74 4 74.74 5 74.74 6 74.74.99 7 74.74.99 8 74.74.99.33 9 74.74.99.33 10 74.74.99.33.89 11 74.74.99.33.89 12 74.74.99.33.89.96 13 74.74.99.33.89.96 14 74.74.99.33.89.96.38 15 74.74.99.33.89.96.38 16 74.74.99.33.89.96.38.39 17 74.74.99.33.89.96.38.39 18 74.74.99.33.89.96.38.39.91 19 74.74.99.33.89.96.38.39.91 20 74.74.99.33.89.96.38.39.91.6 21 74.74.99.33.89.96.38.39.91.6 22 74.74.99.33.89.96.38.39.91.6.97 23 74.74.99.33.89.96.38.39.91.6.97 24 74.74.99.33.89.96.38.39.91.6.97.46 25 74.74.99.33.89.96.38.39.91.6.97.46 26 74.74.99.33.89.96.38.39.91.6.97.46.54 27 74.74.99.33.89.96.38.39.91.6.97.46.54 28 74.74.99.33.89.96.38.39.91.6.97.46.54.8 29 74.74.99.33.89.96.38.39.91.6.97.46.54.8 30 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 31 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 32 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 33 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 34 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 35 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 36 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 37 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 38 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 39 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 40 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 41 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 42 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 43 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 44 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 45 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 46 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 47 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 48 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 49 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 50 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 51 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 52 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 53 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 54 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 55 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 56 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 57 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 58 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 59 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 60 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 61 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 62 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 63 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 64 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 65 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 66 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 67 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 68 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 69 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 70 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 71 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 72 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 73 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 74 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 75 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 76 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 77 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 78 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 79 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 80 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 81 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 82 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 83 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 84 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 85 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 86 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 87 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 88 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 89 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 90 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 91 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 92 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 93 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 94 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 95 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 96 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 97 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 98 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 99 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 100 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 101 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 102 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 103 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 104 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 105 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 106 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 107 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 108 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 109 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 110 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 111 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 112 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 113 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 114 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 115 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 116 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 117 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 118 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 119 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 120 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 121 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 122 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 123 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 124 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 125 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 126 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 127 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 128 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 129 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 130 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 131 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 132 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 133 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 134 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 135 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 136 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 137 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 138 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 139 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 140 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 141 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 142 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 143 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 144 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 145 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 146 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 147 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 148 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 149 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 150 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 151 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 152 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 153 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 154 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 155 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 156 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 157 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 158 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 159 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 160 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 161 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 162 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 163 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 164 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 165 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 166 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 167 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 168 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 169 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 170 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 171 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 172 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 173 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 174 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 175 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 176 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 177 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 178 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 179 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 180 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 181 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 182 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 183 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 184 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 185 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 186 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 187 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 188 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 189 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 190 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 191 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 192 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 193 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 194 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 195 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 196 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 197 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 198 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 199 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 200 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} +} {1 89 2 89 3 89.96 4 89.96 5 89.96.38 6 89.96.38 7 89.96.38.39 + 8 89.96.38.39 9 89.96.38.39.91 10 89.96.38.39.91 11 89.96.38.39.91.6 + 12 89.96.38.39.91.6 13 89.96.38.39.91.6.97 14 89.96.38.39.91.6.97 + 15 89.96.38.39.91.6.97.46 16 89.96.38.39.91.6.97.46 + 17 89.96.38.39.91.6.97.46.54 18 89.96.38.39.91.6.97.46.54 + 19 89.96.38.39.91.6.97.46.54.8 20 89.96.38.39.91.6.97.46.54.8 + 21 89.96.38.39.91.6.97.46.54.8.29 22 89.96.38.39.91.6.97.46.54.8.29 + 23 89.96.38.39.91.6.97.46.54.8.29.84 24 89.96.38.39.91.6.97.46.54.8.29.84 + 25 89.96.38.39.91.6.97.46.54.8.29.84.23 + 26 89.96.38.39.91.6.97.46.54.8.29.84.23 + 27 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 28 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 29 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 30 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 31 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 32 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 33 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 34 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 35 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 36 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 37 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 38 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 39 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 40 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 41 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 42 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 43 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 44 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 45 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 46 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 47 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 48 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 49 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 50 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 51 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 52 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 53 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 54 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 55 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 56 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 57 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 58 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 59 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 60 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 61 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 62 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 63 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 64 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 65 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 66 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 67 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 68 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 69 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 70 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 71 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 72 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 73 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 74 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 75 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 76 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 77 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 78 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 79 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 80 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 81 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 82 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 83 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 84 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 85 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 86 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 87 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 88 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 89 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 90 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 91 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 92 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 93 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 94 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 95 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 96 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 97 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 98 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 99 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 100 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 101 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 102 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 103 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 104 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 105 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 106 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 107 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 108 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 109 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 110 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 111 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 112 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 113 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 114 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 115 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 116 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 117 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 118 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 119 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 120 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 121 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 122 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 123 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 124 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 125 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 126 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 127 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 128 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 129 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 130 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 131 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 132 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 133 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 134 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 135 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 136 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 137 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 138 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 139 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 140 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 141 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 142 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 143 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 144 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 145 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 146 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 147 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 148 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 149 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 150 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 151 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 152 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 153 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 154 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 155 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 156 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 157 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 158 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 159 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 160 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 161 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 162 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 163 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 164 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 165 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 166 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 167 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 168 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 169 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 170 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 171 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 172 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 173 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 174 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 175 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 176 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 177 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 178 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 179 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 180 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 181 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 182 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 183 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 184 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 185 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 186 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 187 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 + 188 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 + 189 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 + 190 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} do_execsql_test 1.1.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 22 {} 23 {} 24 {} 25 {} 26 {} 27 {} 28 {} 29 {} 30 {} 31 {} 32 {} 33 {} 34 {} 35 {} 36 {} 37 {} 38 {} 39 {} 40 {} 41 {} 42 {} 43 {} 44 {} 45 {} 46 {} 47 {} 48 {} 49 {} 50 {} 51 {} 52 {} 53 {} 54 {} 55 {} 56 {} 57 {} 58 {} 59 {} 60 {} 61 {} 62 {} 63 {} 64 {} 65 {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} 72 {} 73 {} 74 {} 75 {} 76 {} 77 {} 78 {} 79 {} 80 {} 81 {} 82 {} 83 {} 84 {} 85 {} 86 {} 87 {} 88 {} 89 {} 90 {} 91 {} 92 {} 93 {} 94 {} 95 {} 96 {} 97 {} 98 {} 99 {} 100 {} 101 {} 102 {} 103 {} 104 {} 105 {} 106 {} 107 {} 108 {} 109 {} 110 {} 111 {} 112 {} 113 {} 114 {} 115 {} 116 {} 117 {} 118 {} 119 {} 120 {} 121 {} 122 {} 123 {} 124 {} 125 {} 126 {} 127 {} 128 {} 129 {} 130 {} 131 {} 132 {} 133 {} 134 {} 135 {} 136 {} 137 {} 138 {} 139 {} 140 {} 141 {} 142 {} 143 {} 144 {} 145 {} 146 {} 147 {} 148 {} 149 {} 150 {} 151 {} 152 {} 153 {} 154 {} 155 {} 156 {} 157 {} 158 {} 159 {} 160 {} 161 {} 162 {} 163 {} 164 {} 165 {} 166 {} 167 {} 168 {} 169 {} 170 {} 171 {} 172 {} 173 {} 174 {} 175 {} 176 {} 177 {} 178 {} 179 {} 180 {} 181 {} 182 {} 183 {} 184 {} 185 {} 186 {} 187 {} 188 {} 189 {} 190 {} 191 {} 192 {} 193 {} 194 {} 195 {} 196 {} 197 {} 198 {} 199 {} 200 {} 201 {}} +} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} + 20 {} 21 {} 22 {} 23 {} 24 {} 25 {} 26 {} 27 {} 28 {} + 29 {} 30 {} 31 {} 32 {} 33 {} 34 {} 35 {} 36 {} 37 {} + 38 {} 39 {} 40 {} 41 {} 42 {} 43 {} 44 {} 45 {} 46 {} + 47 {} 48 {} 49 {} 50 {} 51 {} 52 {} 53 {} 54 {} 55 {} + 56 {} 57 {} 58 {} 59 {} 60 {} 61 {} 62 {} 63 {} 64 {} + 65 {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} 72 {} 73 {} + 74 {} 75 {} 76 {} 77 {} 78 {} 79 {} 80 {} 81 {} 82 {} + 83 {} 84 {} 85 {} 86 {} 87 {} 88 {} 89 {} 90 {} 91 {} + 92 {} 93 {} 94 {} 95 {} 96 {} 97 {} 98 {} 99 {} 100 {} + 101 {} 102 {} 103 {} 104 {} 105 {} 106 {} 107 {} 108 {} + 109 {} 110 {} 111 {} 112 {} 113 {} 114 {} 115 {} 116 {} + 117 {} 118 {} 119 {} 120 {} 121 {} 122 {} 123 {} 124 {} + 125 {} 126 {} 127 {} 128 {} 129 {} 130 {} 131 {} 132 {} + 133 {} 134 {} 135 {} 136 {} 137 {} 138 {} 139 {} 140 {} + 141 {} 142 {} 143 {} 144 {} 145 {} 146 {} 147 {} 148 {} + 149 {} 150 {} 151 {} 152 {} 153 {} 154 {} 155 {} 156 {} + 157 {} 158 {} 159 {} 160 {} 161 {} 162 {} 163 {} 164 {} + 165 {} 166 {} 167 {} 168 {} 169 {} 170 {} 171 {} 172 {} + 173 {} 174 {} 175 {} 176 {} 177 {} 178 {} 179 {} 180 {} + 181 {} 182 {} 183 {} 184 {} 185 {} 186 {} 187 {} 188 {} + 189 {} 190 {} 191 {}} do_execsql_test 1.1.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {}} +} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} + 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {}} do_execsql_test 1.1.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 89 2 89.6 3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 8 89.6.29.47.59.28.75.78 9 89.6.29.47.59.28.75.78.72 10 89.6.29.47.59.28.75.78.72.98 11 89.6.29.47.59.28.75.78.72.98.87 12 89.6.29.47.59.28.75.78.72.98.87.73 13 89.6.29.47.59.28.75.78.72.98.87.73.96 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 17 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91 18 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69 19 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 1 74 2 74.96 3 74.96.97 4 74.96.97.84 5 74.96.97.84.86 6 74.96.97.84.86.32 7 74.96.97.84.86.32.25 8 74.96.97.84.86.32.25.89 9 74.96.97.84.86.32.25.89.29 10 74.96.97.84.86.32.25.89.29.9 11 74.96.97.84.86.32.25.89.29.9.21 12 74.96.97.84.86.32.25.89.29.9.21.12 13 74.96.97.84.86.32.25.89.29.9.21.12.88 14 74.96.97.84.86.32.25.89.29.9.21.12.88.55 15 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70 16 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 17 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81 18 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91 19 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 74 2 74.38 3 74.38.46 4 74.38.46.23 5 74.38.46.23.61 6 74.38.46.23.61.3 7 74.38.46.23.61.3.1 8 74.38.46.23.61.3.1.76 9 74.38.46.23.61.3.1.76.63 10 74.38.46.23.61.3.1.76.63.73 11 74.38.46.23.61.3.1.76.63.73.65 12 74.38.46.23.61.3.1.76.63.73.65.20 13 74.38.46.23.61.3.1.76.63.73.65.20.8 14 74.38.46.23.61.3.1.76.63.73.65.20.8.77 15 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19 16 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 17 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23 18 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15 19 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 99 2 99.39 3 99.39.54 4 99.39.54.16 5 99.39.54.16.85 6 99.39.54.16.85.22 7 99.39.54.16.85.22.40 8 99.39.54.16.85.22.40.4 9 99.39.54.16.85.22.40.4.87 10 99.39.54.16.85.22.40.4.87.65 11 99.39.54.16.85.22.40.4.87.65.5 12 99.39.54.16.85.22.40.4.87.65.5.31 13 99.39.54.16.85.22.40.4.87.65.5.31.49 14 99.39.54.16.85.22.40.4.87.65.5.31.49.2 15 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26 16 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 17 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13 18 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36 19 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 33 2 33.91 3 33.91.8 4 33.91.8.65 5 33.91.8.65.85 6 33.91.8.65.85.55 7 33.91.8.65.85.55.56 8 33.91.8.65.85.55.56.42 9 33.91.8.65.85.55.56.42.80 10 33.91.8.65.85.55.56.42.80.58 11 33.91.8.65.85.55.56.42.80.58.11 12 33.91.8.65.85.55.56.42.80.58.11.95 13 33.91.8.65.85.55.56.42.80.58.11.95.90 14 33.91.8.65.85.55.56.42.80.58.11.95.90.85 15 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47 16 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 17 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14 18 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3 19 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {}} +} {1 89 2 89.6 3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 + 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 8 89.6.29.47.59.28.75.78 + 9 89.6.29.47.59.28.75.78.72 10 89.6.29.47.59.28.75.78.72.98 + 11 89.6.29.47.59.28.75.78.72.98.87 12 89.6.29.47.59.28.75.78.72.98.87.73 + 13 89.6.29.47.59.28.75.78.72.98.87.73.96 + 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 + 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 + 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 + 17 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91 + 18 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69 + 19 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 96 2 96.97 + 3 96.97.84 4 96.97.84.86 5 96.97.84.86.32 6 96.97.84.86.32.25 + 7 96.97.84.86.32.25.89 8 96.97.84.86.32.25.89.29 + 9 96.97.84.86.32.25.89.29.9 10 96.97.84.86.32.25.89.29.9.21 + 11 96.97.84.86.32.25.89.29.9.21.12 12 96.97.84.86.32.25.89.29.9.21.12.88 + 13 96.97.84.86.32.25.89.29.9.21.12.88.55 + 14 96.97.84.86.32.25.89.29.9.21.12.88.55.70 + 15 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 + 16 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81 + 17 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91 + 18 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 38 2 38.46 + 3 38.46.23 4 38.46.23.61 5 38.46.23.61.3 6 38.46.23.61.3.1 + 7 38.46.23.61.3.1.76 8 38.46.23.61.3.1.76.63 9 38.46.23.61.3.1.76.63.73 + 10 38.46.23.61.3.1.76.63.73.65 11 38.46.23.61.3.1.76.63.73.65.20 + 12 38.46.23.61.3.1.76.63.73.65.20.8 + 13 38.46.23.61.3.1.76.63.73.65.20.8.77 + 14 38.46.23.61.3.1.76.63.73.65.20.8.77.19 + 15 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 + 16 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23 + 17 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15 + 18 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 39 2 39.54 + 3 39.54.16 4 39.54.16.85 5 39.54.16.85.22 6 39.54.16.85.22.40 + 7 39.54.16.85.22.40.4 8 39.54.16.85.22.40.4.87 + 9 39.54.16.85.22.40.4.87.65 10 39.54.16.85.22.40.4.87.65.5 + 11 39.54.16.85.22.40.4.87.65.5.31 12 39.54.16.85.22.40.4.87.65.5.31.49 + 13 39.54.16.85.22.40.4.87.65.5.31.49.2 + 14 39.54.16.85.22.40.4.87.65.5.31.49.2.26 + 15 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 + 16 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13 + 17 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36 + 18 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 91 2 91.8 + 3 91.8.65 4 91.8.65.85 5 91.8.65.85.55 6 91.8.65.85.55.56 + 7 91.8.65.85.55.56.42 8 91.8.65.85.55.56.42.80 + 9 91.8.65.85.55.56.42.80.58 10 91.8.65.85.55.56.42.80.58.11 + 11 91.8.65.85.55.56.42.80.58.11.95 12 91.8.65.85.55.56.42.80.58.11.95.90 + 13 91.8.65.85.55.56.42.80.58.11.95.90.85 + 14 91.8.65.85.55.56.42.80.58.11.95.90.85.47 + 15 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 + 16 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14 + 17 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3 + 18 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {}} do_execsql_test 1.2.2.1 { SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99} do_execsql_test 1.2.2.2 { SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1} do_execsql_test 1.2.3.1 { SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.2.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.2.3.3 { SELECT row_number() OVER ( RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.2.4.1 { SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.2.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.2.4.3 { SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.2.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.2.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.2.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.2.5.1 { SELECT rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.2.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.2.5.3 { SELECT rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.2.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.2.5.5 { SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.2.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.2.6.1 { SELECT @@ -661,7 +2594,33 @@ do_execsql_test 1.2.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.2.7.1 { @@ -669,11 +2628,13 @@ do_test 1.2.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -684,11 +2645,13 @@ do_test 1.2.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -699,11 +2662,13 @@ do_test 1.2.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -714,11 +2679,13 @@ do_test 1.2.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -729,11 +2696,13 @@ do_test 1.2.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -744,11 +2713,13 @@ do_test 1.2.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -759,11 +2730,13 @@ do_test 1.2.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -774,11 +2747,13 @@ do_test 1.2.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -789,11 +2764,13 @@ do_test 1.2.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -804,11 +2781,13 @@ do_test 1.2.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -819,11 +2798,13 @@ do_test 1.2.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -834,11 +2815,13 @@ do_test 1.2.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -849,11 +2832,13 @@ do_test 1.2.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -864,11 +2849,13 @@ do_test 1.2.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -879,11 +2866,13 @@ do_test 1.2.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -894,11 +2883,13 @@ do_test 1.2.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -909,11 +2900,13 @@ do_test 1.2.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -924,11 +2917,13 @@ do_test 1.2.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -939,250 +2934,2179 @@ do_test 1.2.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.2.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206} +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207} do_execsql_test 1.2.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 223 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 210 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 279 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 212 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 232 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.2.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.2.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 240 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 252 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 171 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 226 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 124 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 198 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.2.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.2.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.2.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 81 86 81 46 98 97 23 41 72 29 13 28 35 16 47 47 9 24 26 98 58 8 24 30 91 58 2 56 29 73 2 42 46 62 62 73 40 16 85 33 37 81 25 9 87 78 87 61 28 59 77 90 74 9 27 41 22 39 67 72 54 85 74 90 7 61 90 62 4 93 72 96 94 29 23 95 74 93 30 23 29 3 1 41 80 65 33 2 98 86 89 25 76 65 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33 99} +} {96 41 5 16 85 42 43 89 1 22 39 51 73 93 22 80 + 1 73 91 94 35 74 73 37 77 54 54 74 81 91 90 + 62 65 63 36 1 95 23 95 56 16 97 86 40 59 1 84 + 98 56 78 65 96 16 90 81 40 59 56 40 54 2 85 + 96 11 87 41 38 65 32 47 80 74 35 47 98 96 13 + 24 72 73 29 12 46 36 53 35 81 27 56 5 11 81 + 93 63 81 91 68 53 99 89 13 12 97 91 29 7 7 78 + 35 84 53 84 58 61 91 99 15 61 98 16 5 75 56 2 + 37 3 96 62 95 43 63 35 78 16 67 43 16 16 90 + 72 98 85 56 90 46 29 29 4 74 74 2 76 41 46 77 + 24 27 97 46 89 1 85 1 74 78 61 85 51 59 35 30 + 56 25 47 28 73 6 73 74 93 43 3 56 47 85 61 61 + 93 9 97 62} do_execsql_test 1.2.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 21 21 {} {} {} {} 21 {} {} {} 21 12 {} 72 {} {} {} 12 {} 72 {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} 73 {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} 55 {} {} {} {} {} {} 15 55 {} {} {} {} {} 55 {} 15 {} {} {} 16 {} 26 26 {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} 98 {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} 9 {} 29 29 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 91 {} 11 {} {} {} {} + 11 {} {} {} {} {} 12 {} {} {} 32 {} 12 {} 32 + {} {} 12 {} {} {} {} {} {} {} 43 {} {} {} {} + {} 33 {} {} {} {} {} 33 {} 43 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} 34 {} {} {} {} + {} {} {} {} {} {} 55 {} {} {} {} {} {} 15 55 + {} {} {} {} {} 55 {} {} {} 86 {} 26 26 {} {} + {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} + {} 27 47 {} {} {} 98 {} {} {} {} {} 98 {} 98 + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} 99 {} 9 9 {} {} {}} do_execsql_test 1.2.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 10 11 11 11 11 11 12 12 12 12 12 13 13 13 14 14 14 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 19 19 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 25 25 25 25 26 26 27 27 28 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 31 31 31 32 32 33 33 33 33 33 33 33 34 34 34 35 35 35 35 35 35 36 36 36 36 36 36 36 36 36 36 36 37 37 37 38 38 38 38 38 39 39 39 39 39 39 40 40 40 41 41 41 41 42 42 42 43 43 43 43 43 43 43 43 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47} +} {1 1 2 2 2 2 3 3 4 5 5 5 6 6 6 7 7 7 7 + 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 12 + 12 12 12 12 12 13 13 14 14 15 15 15 15 15 15 + 16 16 16 16 16 16 17 17 17 17 19 19 19 19 20 + 20 21 21 21 21 21 21 22 22 22 22 22 23 23 23 + 24 25 25 26 26 27 27 27 27 27 27 29 29 29 30 + 30 30 31 31 31 31 31 32 33 33 33 33 33 33 33 + 33 33 33 33 34 34 34 34 34 34 34 35 35 36 36 + 36 37 37 37 37 37 37 38 38 38 38 38 38 39 39 + 39 39 39 40 41 41 41 41 41 42 43 43 43 43 43 + 44 44 44 44 46 46 46 47 47 47 47 47 47 47 47 + 47 47 47 49 49 49 50 51 51 51 52 52 52 53 53 + 54 54 55 55} do_execsql_test 1.2.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 51 51 91 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 62 62 62 {} {} {} {} {} {} {} {} {} {} {} 13 13 43 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 25 75 75 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 66 66 66 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 + 61 61 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 12 12 72 72 72 {} {} {} {} {} {} + {} {} {} {} {} 13 13 63 63 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} 34 84 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 35 85 85 85 {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 36 76 76 76 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 + 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} + {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 74 32 31 84 91 74 3 93 84 74 31 12 90 31 22 74 64 43 64 64 90 74 22 43 90 1 30 62 22 31 31 30 74 64 64 1 40 33 50 11 81 42 40 13 50 81 40 13 13 50 33 52 24 41 81 34 41 34 2 30 2 81 82 53 33 10 33 33 81 34 41 10 81 30 81 4 3 3 23 94 3 61 80 84 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 20 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12} +} {34 2 11 34 81 34 73 33 34 34 11 82 30 11 34 + 65 13 65 65 40 34 72 13 40 41 50 93 72 81 81 + 50 34 65 65 41 73 10 91 61 12 30 54 10 61 30 + 54 54 10 73 23 44 85 1 85 22 80 22 91 93 73 + 84 30 84 84 91 85 1 30 91 80 91 74 43 64 74 + 21 20 85 64 74 21 21 2 74 33 81 21 64 64 2 21 + 93 62 14 14 3 91 11 24 55 93 93 62 90 91 55 3 + 24 14 24 91 55 15 72 60 72 61 61 34 43 43 43 + 61 12 4 15 15 51 51 12 23 12 12 25 41 25 13 + 94 12 70 12 84 32 84 94 70 33 12 12 32 41 91 + 70 22 33 84 80 31 75 84 53 75 80 84 80 53 53 + 53 22 44 63 42 95 31 63 44 44 31 90 74 52 63 + 31 63 1 42 90 90 95 3 42} do_execsql_test 1.2.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.11.1 { SELECT first_value(b) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.2.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 81 + 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 + 81 81 81 81 81 62 62 62 62 62 62 62 62 62 62 + 62 62 62 62 62 62 93 93 93 93 93 93 93 93 93 + 93 93 93 93 93 93 93 93 93 93 93 93 54 54 54 + 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 + 54 65 65 65 65 65 65 65 65 65 65 65 65 65 65 + 65 65 65 65 65 65 65 96 96 96 96 96 96 96 96 + 96 96 96 96 96 96 96 96 96 96 96 96 96 97 97 + 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 + 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 + 38 38 38 38 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.2.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1} do_execsql_test 1.2.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9} +} {10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9} do_execsql_test 1.2.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90} do_execsql_test 1.2.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.2.12.1 { SELECT lead(b,b) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.2.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.2.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.13.1 { SELECT lag(b,b) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.2.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.2.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.2.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.2.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.2.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5} +} {89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7} do_execsql_test 1.2.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.2.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99} +} {1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99} do_execsql_test 1.2.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99} +} {10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99} do_execsql_test 1.2.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.2.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.2.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.2.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.2.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.2.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} +} {191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} do_execsql_test 1.2.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {}} +} {191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {}} do_execsql_test 1.2.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {}} +} {20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} + 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} + 20 {} 20 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {}} do_execsql_test 1.2.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {}} +} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {}} do_execsql_test 1.3.2.1 { SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.3.2.2 { SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.3.3.1 { SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.3.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.3.3.3 { SELECT row_number() OVER ( RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.3.4.1 { SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.3.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.3.4.3 { SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.3.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.3.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.3.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.3.5.1 { SELECT rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.3.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.3.5.3 { SELECT rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.3.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.3.5.5 { SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.3.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.3.6.1 { SELECT @@ -1190,7 +5114,33 @@ do_execsql_test 1.3.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.3.7.1 { @@ -1198,11 +5148,13 @@ do_test 1.3.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1213,11 +5165,13 @@ do_test 1.3.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1228,11 +5182,13 @@ do_test 1.3.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1243,11 +5199,13 @@ do_test 1.3.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1258,11 +5216,13 @@ do_test 1.3.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1273,11 +5233,13 @@ do_test 1.3.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1288,11 +5250,13 @@ do_test 1.3.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1303,11 +5267,13 @@ do_test 1.3.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1318,11 +5284,13 @@ do_test 1.3.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1333,11 +5301,13 @@ do_test 1.3.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1348,11 +5318,13 @@ do_test 1.3.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1363,11 +5335,13 @@ do_test 1.3.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1378,11 +5352,13 @@ do_test 1.3.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1393,11 +5369,13 @@ do_test 1.3.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1408,11 +5386,13 @@ do_test 1.3.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1423,11 +5403,13 @@ do_test 1.3.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1438,11 +5420,13 @@ do_test 1.3.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1453,11 +5437,13 @@ do_test 1.3.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1468,250 +5454,1020 @@ do_test 1.3.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.3.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 76 44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206} +} {99 92 108 72 52 83 55 79 109 65 26 120 119 50 + 70 103 80 124 36 96 59 124 116 110 57 51 52 130 + 103 74 87 48 128 117 105 136 131 71 133 92 109 63 + 84 109 57 146 78 147 113 74 88 150 87 110 65 121 + 106 110 124 85 145 107 161 171 150 156 80 171 120 + 109 158 114 111 136 147 87 173 124 168 173 162 132 + 101 154 167 190 161 110 156 195 198 102 123 177 169 + 140 111 180 119 160 197 152 124 121 134 146 147 132 + 213 141 193 200 210 157 132 136 175 161 218 188 226 + 191 187 208 211 179 138 144 223 196 214 170 212 202 + 163 184 172 173 195 229 240 187 210 200 163 227 228 + 223 191 252 235 225 243 172 187 202 179 179 182 231 + 261 207 263 206 189 209 212 276 181 274 249 239 234 + 213 234 269 196 271 221 210 229 235 250 223 232 229 + 279 224 280 216 207} do_execsql_test 1.3.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.3.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 65 102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276} +} {65 102 87 138 57 181 80 111 26 48 144 207 36 121 + 132 101 163 172 196 119 136 63 124 179 110 179 182 + 74 132 189 51 52 85 216 163 134 123 210 78 141 57 + 187 71 87 172 173 50 224 88 59 111 170 109 213 + 223 146 147 84 114 191 206 221 157 161 209 229 74 + 140 107 187 207 212 124 202 52 232 55 184 229 106 + 132 152 120 92 110 179 235 65 70 87 110 195 200 + 175 234 160 234 136 80 113 187 109 121 124 196 156 + 210 239 250 72 109 188 202 191 105 154 79 231 147 + 225 103 161 169 223 96 83 249 212 162 227 228 167 + 180 193 117 177 214 145 208 235 150 110 211 103 158 + 200 168 229 92 156 243 280 279 116 173 269 271 131 + 133 223 128 173 197 210 99 150 161 147 218 240 109 + 136 146 261 263 124 130 252 171 190 213 274 108 195 + 226 119 124 171 198 120 276} do_execsql_test 1.3.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 196 134 109 213 223 106 234 191 212 168 229 147 218 240 65 102 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 11 87 138 63 124 179 78 141 84 120 234 79 231 162 227 228 280 57 181 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 80 182 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 111 206 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 26 51 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 48 144 207 216 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 36 121 132 88 52 232 156 210 239 250 83 103 158 210 171 198 101 163 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276} +} {196 134 109 213 223 106 234 191 212 168 229 147 218 + 240 65 102 119 136 123 210 146 147 132 152 160 105 + 154 92 156 243 109 136 146 261 263 87 138 63 124 + 179 78 141 84 120 234 79 231 162 227 228 280 57 + 181 110 179 57 187 114 191 206 221 92 110 136 147 + 167 180 193 279 124 130 252 80 182 71 157 161 209 + 229 179 235 80 225 117 177 214 116 173 269 271 171 + 111 74 132 189 87 74 140 113 187 103 161 169 145 + 208 235 131 133 223 190 213 274 26 51 52 85 172 + 173 107 187 207 212 65 70 109 121 124 223 150 128 + 108 195 226 48 144 207 216 50 224 124 202 87 110 + 195 200 196 96 110 211 173 197 119 124 36 121 132 + 88 52 232 156 210 239 250 83 103 158 210 171 198 + 101 163 172 163 59 111 170 55 184 229 175 72 109 + 188 202 249 200 99 150 161 120 276} do_execsql_test 1.3.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.3.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.3.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.11.1 { SELECT first_value(b) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.3.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.3.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 19 20 21 21 22 22 23 23 24 25 26 26 27 27 28 + 29 29 29 30 30 30 31 31 32 33 33 33 33 34 34 + 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 + 40 41 41 42 43 43 44 44 46 46 47 47 47 47 49 + 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 + 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 + 67 68 69 70 72 72 72 73 73 73 74 74 74 75 75 + 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 + 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 + 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 + 96 97 97 98 98 99 99} do_execsql_test 1.3.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 2 2 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99} +} {10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 + 11 11 21 21 31 31 41 41 51 61 61 81 81 81 91 + 91 91 91 91 2 2 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 3 3 13 13 23 23 33 33 33 33 43 43 + 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 + 34 44 44 54 64 74 74 74 84 84 84 84 94 5 15 + 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 + 85 95 95 95 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 + 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 + 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89 89 89 99 99} do_execsql_test 1.3.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.3.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.3.12.1 { SELECT lead(b,b) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.3.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.3.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.13.1 { SELECT lag(b,b) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.3.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.3.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.3.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.3.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.3.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.3.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.3.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 19 20 21 21 22 22 23 23 24 25 26 26 27 27 28 + 29 29 29 30 30 30 31 31 32 33 33 33 33 34 34 + 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 + 40 41 41 42 43 43 44 44 46 46 47 47 47 47 49 + 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 + 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 + 67 68 69 70 72 72 72 73 73 73 74 74 74 75 75 + 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 + 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 + 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 + 96 97 97 98 98 99 99} do_execsql_test 1.3.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 2 2 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99} +} {10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 + 11 11 21 21 31 31 41 41 51 61 61 81 81 81 91 + 91 91 91 91 2 2 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 3 3 13 13 23 23 33 33 33 33 43 43 + 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 + 34 44 44 54 64 74 74 74 84 84 84 84 94 5 15 + 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 + 85 95 95 95 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 + 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 + 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89 89 89 99 99} do_execsql_test 1.3.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.3.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.3.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.3.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.3.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.3.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 {} 1 74 1 {} 1 74 1 {} 1 99 1 {} 1 33 1 {} 1 89 1 {} 1 96 1 {} 1 38 1 {} 1 39 1 {} 1 91 1 {} 1 6 1 {} 1 97 1 {} 1 46 1 {} 1 54 1 {} 1 8 1 {} 1 29 1 {} 1 84 1 {} 1 23 1 {} 1 16 1 {} 1 65 1 {} 1 47 1 {} 1 86 1 {} 1 61 1 {} 1 85 1 {} 1 85 1 {} 1 59 1 {} 1 32 1 {} 1 3 1 {} 1 22 1 {} 1 55 1 {} 1 28 1 {} 1 25 1 {} 1 1 1 {} 1 40 1 {} 1 56 1 {} 1 75 1 {} 1 89 1 {} 1 76 1 {} 1 4 1 {} 1 42 1 {} 1 78 1 {} 1 29 1 {} 1 63 1 {} 1 87 1 {} 1 80 1 {} 1 72 1 {} 1 9 1 {} 1 73 1 {} 1 65 1 {} 1 58 1 {} 1 98 1 {} 1 21 1 {} 1 65 1 {} 1 5 1 {} 1 11 1 {} 1 87 1 {} 1 12 1 {} 1 20 1 {} 1 31 1 {} 1 95 1 {} 1 73 1 {} 1 88 1 {} 1 8 1 {} 1 49 1 {} 1 90 1 {} 1 96 1 {} 1 55 1 {} 1 77 1 {} 1 2 1 {} 1 85 1 {} 1 74 1 {} 1 70 1 {} 1 19 1 {} 1 26 1 {} 1 47 1 {} 1 90 1 {} 1 58 1 {} 1 9 1 {} 1 72 1 {} 1 33 1 {} 1 75 1 {} 1 81 1 {} 1 23 1 {} 1 13 1 {} 1 14 1 {} 1 91 1 {} 1 91 1 {} 1 15 1 {} 1 36 1 {} 1 3 1 {} 1 69 1 {} 1 52 1 {} 1 50 1 {} 1 10 1 {} 1 33 1 {} 1 39 1 {} 1 58 1 {} 1 38 1 {} 1 83 1 {} 1 82 1 {} 1 7 1 {}} +} {1 89 1 {} 1 96 1 {} 1 38 1 {} 1 39 1 {} 1 91 1 {} 1 6 + 1 {} 1 97 1 {} 1 46 1 {} 1 54 1 {} 1 8 1 {} 1 29 1 {} + 1 84 1 {} 1 23 1 {} 1 16 1 {} 1 65 1 {} 1 47 1 {} 1 86 + 1 {} 1 61 1 {} 1 85 1 {} 1 85 1 {} 1 59 1 {} 1 32 1 {} + 1 3 1 {} 1 22 1 {} 1 55 1 {} 1 28 1 {} 1 25 1 {} 1 1 + 1 {} 1 40 1 {} 1 56 1 {} 1 75 1 {} 1 89 1 {} 1 76 1 {} + 1 4 1 {} 1 42 1 {} 1 78 1 {} 1 29 1 {} 1 63 1 {} 1 87 + 1 {} 1 80 1 {} 1 72 1 {} 1 9 1 {} 1 73 1 {} 1 65 1 {} + 1 58 1 {} 1 98 1 {} 1 21 1 {} 1 65 1 {} 1 5 1 {} 1 11 + 1 {} 1 87 1 {} 1 12 1 {} 1 20 1 {} 1 31 1 {} 1 95 1 {} + 1 73 1 {} 1 88 1 {} 1 8 1 {} 1 49 1 {} 1 90 1 {} 1 96 + 1 {} 1 55 1 {} 1 77 1 {} 1 2 1 {} 1 85 1 {} 1 74 1 {} + 1 70 1 {} 1 19 1 {} 1 26 1 {} 1 47 1 {} 1 90 1 {} 1 58 + 1 {} 1 9 1 {} 1 72 1 {} 1 33 1 {} 1 75 1 {} 1 81 1 {} + 1 23 1 {} 1 13 1 {} 1 14 1 {} 1 91 1 {} 1 91 1 {} 1 15 + 1 {} 1 36 1 {} 1 3 1 {} 1 69 1 {} 1 52 1 {} 1 50 1 {} + 1 10 1 {} 1 33 1 {} 1 39 1 {} 1 58 1 {} 1 38 1 {} 1 83 + 1 {} 1 82 1 {} 1 7} do_execsql_test 1.3.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {}} +} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {}} do_execsql_test 1.3.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {}} +} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {}} do_execsql_test 1.3.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 89 1 6 1 29 1 47 1 59 1 28 1 75 1 78 1 72 1 98 1 87 1 73 1 96 1 74 1 90 1 75 1 91 1 69 1 39 1 7 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 74 1 96 1 97 1 84 1 86 1 32 1 25 1 89 1 29 1 9 1 21 1 12 1 88 1 55 1 70 1 58 1 81 1 91 1 52 1 58 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 74 1 38 1 46 1 23 1 61 1 3 1 1 1 76 1 63 1 73 1 65 1 20 1 8 1 77 1 19 1 9 1 23 1 15 1 50 1 38 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 99 1 39 1 54 1 16 1 85 1 22 1 40 1 4 1 87 1 65 1 5 1 31 1 49 1 2 1 26 1 72 1 13 1 36 1 10 1 83 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 33 1 91 1 8 1 65 1 85 1 55 1 56 1 42 1 80 1 58 1 11 1 95 1 90 1 85 1 47 1 33 1 14 1 3 1 33 1 82 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {}} +} {1 89 1 6 1 29 1 47 1 59 1 28 1 75 1 78 1 72 1 98 1 87 + 1 73 1 96 1 74 1 90 1 75 1 91 1 69 1 39 1 7 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 96 1 97 1 84 1 86 1 32 + 1 25 1 89 1 29 1 9 1 21 1 12 1 88 1 55 1 70 1 58 1 81 + 1 91 1 52 1 58 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 38 1 46 1 23 1 61 1 3 1 1 1 76 1 63 1 73 1 65 1 20 + 1 8 1 77 1 19 1 9 1 23 1 15 1 50 1 38 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 39 1 54 1 16 1 85 1 22 1 40 + 1 4 1 87 1 65 1 5 1 31 1 49 1 2 1 26 1 72 1 13 1 36 + 1 10 1 83 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 91 + 1 8 1 65 1 85 1 55 1 56 1 42 1 80 1 58 1 11 1 95 1 90 + 1 85 1 47 1 33 1 14 1 3 1 33 1 82 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {}} do_execsql_test 1.4.2.1 { SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82 82 17 7 5} +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 + 83 83 83 83 83 83 83 82 82 17 7} do_execsql_test 1.4.2.2 { SELECT min(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7} do_execsql_test 1.4.3.1 { SELECT row_number() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.4.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.4.3.3 { SELECT row_number() OVER ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.4.4.1 { SELECT dense_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.4.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.4.4.3 { SELECT dense_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.4.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.4.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.4.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.4.5.1 { SELECT rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.4.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.4.5.3 { SELECT rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.4.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.4.5.5 { SELECT rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.4.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.4.6.1 { SELECT @@ -1719,7 +6475,33 @@ do_execsql_test 1.4.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.4.7.1 { @@ -1727,11 +6509,13 @@ do_test 1.4.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1742,11 +6526,13 @@ do_test 1.4.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1757,11 +6543,13 @@ do_test 1.4.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1772,11 +6560,13 @@ do_test 1.4.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1787,11 +6577,13 @@ do_test 1.4.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1802,11 +6594,13 @@ do_test 1.4.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1817,11 +6611,13 @@ do_test 1.4.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1832,11 +6628,13 @@ do_test 1.4.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1847,11 +6645,13 @@ do_test 1.4.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1862,11 +6662,13 @@ do_test 1.4.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1877,11 +6679,13 @@ do_test 1.4.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1892,11 +6696,13 @@ do_test 1.4.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1907,11 +6713,13 @@ do_test 1.4.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1922,11 +6730,13 @@ do_test 1.4.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1937,11 +6747,13 @@ do_test 1.4.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1952,11 +6764,13 @@ do_test 1.4.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1967,11 +6781,13 @@ do_test 1.4.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1982,11 +6798,13 @@ do_test 1.4.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1997,250 +6815,1930 @@ do_test 1.4.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.4.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206} +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207} do_execsql_test 1.4.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 223 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 210 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 279 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 212 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 232 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.4.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.4.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 240 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 252 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 171 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 226 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 124 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 198 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.4.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.4.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.4.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.4.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.4.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.11.1 { SELECT first_value(b) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.4.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.4.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 19 20 21 21 22 22 23 23 24 25 26 26 27 27 28 + 29 29 29 30 30 30 31 31 32 33 33 33 33 34 34 + 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 + 40 41 41 42 43 43 44 44 46 46 47 47 47 47 49 + 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 + 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 + 67 68 69 70 72 72 72 73 73 73 74 74 74 75 75 + 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 + 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 + 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 + 96 97 97 98 98 99 99} do_execsql_test 1.4.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 2 2 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99} +} {10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 + 11 11 21 21 31 31 41 41 51 61 61 81 81 81 91 + 91 91 91 91 2 2 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 3 3 13 13 23 23 33 33 33 33 43 43 + 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 + 34 44 44 54 64 74 74 74 84 84 84 84 94 5 15 + 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 + 85 95 95 95 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 + 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 + 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89 89 89 99 99} do_execsql_test 1.4.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.4.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.4.12.1 { SELECT lead(b,b) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.4.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.4.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.13.1 { SELECT lag(b,b) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.4.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.4.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.4.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.4.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.4.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.39.44.58.30.38.34.83.27.82.17.7.5 39.44.58.30.38.34.83.27.82.17.7.5 44.58.30.38.34.83.27.82.17.7.5 58.30.38.34.83.27.82.17.7.5 30.38.34.83.27.82.17.7.5 38.34.83.27.82.17.7.5 34.83.27.82.17.7.5 83.27.82.17.7.5 27.82.17.7.5 82.17.7.5 17.7.5 7.5 5} +} {89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.21.39.44.58.30.38.34.83.27.82.17.7 21.39.44.58.30.38.34.83.27.82.17.7 + 39.44.58.30.38.34.83.27.82.17.7 44.58.30.38.34.83.27.82.17.7 + 58.30.38.34.83.27.82.17.7 30.38.34.83.27.82.17.7 38.34.83.27.82.17.7 + 34.83.27.82.17.7 83.27.82.17.7 27.82.17.7 82.17.7 17.7 7} do_execsql_test 1.4.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 90.40.30.80.20.90.60.70.80.90.30.50.10.30 40.30.80.20.90.60.70.80.90.30.50.10.30 30.80.20.90.60.70.80.90.30.50.10.30 80.20.90.60.70.80.90.30.50.10.30 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.61.1.21.11.51.41.31.31.11.81.91.91.21 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 31.11.81.91.91.21 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 32.22.42.2.72.12.22.2.72.72.12.62.52.82 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 72.72.12.62.52.82 72.12.62.52.82 12.62.52.82 62.52.82 52.82 82 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 53.63.73.13.73.73.33.93.23.13.33.3.33.83 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 23.13.33.3.33.83 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 94.84.74.34.34.44.74.64.14.34.84.84.44.34 84.74.34.34.44.74.64.14.34.84.84.44.34 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.5.15.95.55.75.85.75.15.95.5 35.5.15.95.55.75.85.75.15.95.5 5.15.95.55.75.85.75.15.95.5 15.95.55.75.85.75.15.95.5 95.55.75.85.75.15.95.5 55.75.85.75.15.95.5 75.85.75.15.95.5 85.75.15.95.5 75.15.95.5 15.95.5 95.5 5 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.16.36.76.96.96.26.26.36.66.36.36 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 26.36.66.36.36 36.66.36.36 66.36.36 36.36 36 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 47.47.37.27.17.7 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 78.8.28.98.78.58.98.8.88.8.58.58.58.38 8.28.98.78.58.98.8.88.8.58.58.58.38 28.98.78.58.98.8.88.8.58.58.58.38 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 88.8.58.58.58.38 8.58.58.58.38 58.58.58.38 58.58.38 58.38 38 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 40.30.80.20.90.60.70.80.90.30.50.10.30 + 30.80.20.90.60.70.80.90.30.50.10.30 80.20.90.60.70.80.90.30.50.10.30 + 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 + 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 + 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 + 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 + 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 + 31.11.81.91.91.21 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 + 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 + 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 + 72.72.12.62.52.82 72.12.62.52.82 12.62.52.82 62.52.82 52.82 82 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 + 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 + 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 + 23.13.33.3.33.83 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 + 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 + 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 + 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 95.65.65.35.5.15.95.55.75.85.75.15.95 65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.5.15.95.55.75.85.75.15.95 35.5.15.95.55.75.85.75.15.95 + 5.15.95.55.75.85.75.15.95 15.95.55.75.85.75.15.95 95.55.75.85.75.15.95 + 55.75.85.75.15.95 75.85.75.15.95 85.75.15.95 75.15.95 15.95 95 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 + 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 + 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 + 26.36.66.36.36 36.66.36.36 66.36.36 36.36 36 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 + 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 + 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 + 47.47.37.27.17.7 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 8.28.98.78.58.98.8.88.8.58.58.58.38 28.98.78.58.98.8.88.8.58.58.58.38 + 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 + 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 + 88.8.58.58.58.38 8.58.58.58.38 58.58.58.38 58.58.38 58.38 38 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} do_execsql_test 1.4.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 94.95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.96.96.96.97.97.98.98.99.99.99 95.96.96.96.97.97.98.98.99.99.99 96.96.96.97.97.98.98.99.99.99 96.96.97.97.98.98.99.99.99 96.97.97.98.98.99.99.99 97.97.98.98.99.99.99 97.98.98.99.99.99 98.98.99.99.99 98.99.99.99 99.99.99 99.99 99} +} {1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 94.95.95.95.96.96.96.97.97.98.98.99.99 + 95.95.95.96.96.96.97.97.98.98.99.99 95.95.96.96.96.97.97.98.98.99.99 + 95.96.96.96.97.97.98.98.99.99 96.96.96.97.97.98.98.99.99 + 96.96.97.97.98.98.99.99 96.97.97.98.98.99.99 97.97.98.98.99.99 + 97.98.98.99.99 98.98.99.99 98.99.99 99.99 99} do_execsql_test 1.4.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 10.20.30.30.30.40.50.60.70.80.80.90.90.90 20.30.30.30.40.50.60.70.80.80.90.90.90 30.30.30.40.50.60.70.80.80.90.90.90 30.30.40.50.60.70.80.80.90.90.90 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.51.61.61.81.81.81.91.91.91.91.91 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 12.12.12.22.22.32.42.52.62.62.72.72.72.82 12.12.22.22.32.42.52.62.62.72.72.72.82 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 62.72.72.72.82 72.72.72.82 72.72.82 72.82 82 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.43.43.53.63.73.73.73.83.93.93.93 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.54.64.74.74.74.74.74.84.84.84.84.94 54.64.74.74.74.74.74.84.84.84.84.94 64.74.74.74.74.74.84.84.84.84.94 74.74.74.74.74.84.84.84.84.94 74.74.74.74.84.84.84.84.94 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.65.65.65.75.75.75.85.85.85.95.95.95 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.46.46.56.56.56.66.76.86.96.96.96 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 76.86.96.96.96 86.96.96.96 96.96.96 96.96 96 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.28.38.38.58.58.58.58.68.78.78.88.98.98 28.38.38.58.58.58.58.68.78.78.88.98.98 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 78.78.88.98.98 78.88.98.98 88.98.98 98.98 98 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.49.59.59.59.59.69.79.89.89.89.99.99.99 49.59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.69.79.89.89.89.99.99.99 59.59.69.79.89.89.89.99.99.99 59.69.79.89.89.89.99.99.99 69.79.89.89.89.99.99.99 79.89.89.89.99.99.99 89.89.89.99.99.99 89.89.99.99.99 89.99.99.99 99.99.99 99.99 99} +} {10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 20.30.30.30.40.50.60.70.80.80.90.90.90 + 30.30.30.40.50.60.70.80.80.90.90.90 30.30.40.50.60.70.80.80.90.90.90 + 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 + 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 + 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 + 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 + 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 + 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 + 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 + 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 + 62.72.72.72.82 72.72.72.82 72.72.82 72.82 82 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 + 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 + 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 + 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.44.44.54.64.74.74.74.84.84.84.84.94 + 44.44.54.64.74.74.74.84.84.84.84.94 44.54.64.74.74.74.84.84.84.84.94 + 54.64.74.74.74.84.84.84.84.94 64.74.74.74.84.84.84.84.94 + 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 + 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.65.65.65.75.75.75.85.85.85.95.95.95 + 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 + 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 + 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 + 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 + 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 + 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 + 76.86.96.96.96 86.96.96.96 96.96.96 96.96 96 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.47.47.47.47.57.67.77.77.87.87.97.97 + 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 + 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 + 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 + 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 28.38.38.58.58.58.58.68.78.78.88.98.98 + 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 + 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 + 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 + 78.78.88.98.98 78.88.98.98 88.98.98 98.98 98 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.49.59.59.59.59.69.79.89.89.89.99.99 + 49.59.59.59.59.69.79.89.89.89.99.99 59.59.59.59.69.79.89.89.89.99.99 + 59.59.59.69.79.89.89.89.99.99 59.59.69.79.89.89.89.99.99 + 59.69.79.89.89.89.99.99 69.79.89.89.89.99.99 79.89.89.89.99.99 + 89.89.89.99.99 89.89.99.99 89.99.99 99.99 99} do_execsql_test 1.4.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} do_execsql_test 1.4.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.4.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.4.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.4.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.4.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 200 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 199 74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 198 74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 197 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 196 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 195 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 194 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 193 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 192 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 191 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 189 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 187 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 185 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 183 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 181 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 179 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 177 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 175 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 173 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 171 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 169 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 167 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 165 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 163 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 161 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 159 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 157 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 155 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 153 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 151 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 149 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 147 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 145 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 143 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 141 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 139 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 137 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 135 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 133 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 131 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 129 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 127 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 125 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 123 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 121 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 119 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 117 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 115 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 113 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 111 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 109 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 107 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 105 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 103 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 101 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 99 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 97 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 95 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 93 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 91 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 89 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 87 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 85 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 83 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 81 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 79 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 77 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 75 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 73 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 71 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 69 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 67 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 65 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 63 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 61 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 59 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 57 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 55 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 53 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 51 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 49 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 47 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 45 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 43 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 41 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 39 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 37 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 35 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 33 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 31 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 29 15.36.3.69.52.50.10.33.39.58.38.83.82.7 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 27 36.3.69.52.50.10.33.39.58.38.83.82.7 26 36.3.69.52.50.10.33.39.58.38.83.82.7 25 3.69.52.50.10.33.39.58.38.83.82.7 24 3.69.52.50.10.33.39.58.38.83.82.7 23 69.52.50.10.33.39.58.38.83.82.7 22 69.52.50.10.33.39.58.38.83.82.7 21 52.50.10.33.39.58.38.83.82.7 20 52.50.10.33.39.58.38.83.82.7 19 50.10.33.39.58.38.83.82.7 18 50.10.33.39.58.38.83.82.7 17 10.33.39.58.38.83.82.7 16 10.33.39.58.38.83.82.7 15 33.39.58.38.83.82.7 14 33.39.58.38.83.82.7 13 39.58.38.83.82.7 12 39.58.38.83.82.7 11 58.38.83.82.7 10 58.38.83.82.7 9 38.83.82.7 8 38.83.82.7 7 83.82.7 6 83.82.7 5 82.7 4 82.7 3 7 2 7 1 {}} +} {191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 189 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 187 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 185 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 183 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 181 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 179 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 177 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 175 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 173 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 171 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 169 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 167 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 165 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 163 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 161 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 159 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 157 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 155 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 153 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 151 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 149 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 147 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 145 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 143 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 141 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 139 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 137 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 135 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 133 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 131 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 129 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 127 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 125 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 123 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 121 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 119 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 117 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 115 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 113 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 111 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 109 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 107 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 105 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 103 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 101 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 99 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 97 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 95 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 93 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 91 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 89 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 87 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 85 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 83 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 81 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 79 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 77 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 75 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 73 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 71 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 69 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 67 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 65 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 63 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 61 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 59 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 57 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 55 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 53 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 51 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 49 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 47 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 45 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 43 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 41 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 39 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 37 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 35 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 33 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 31 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 29 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 27 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 26 36.3.69.52.50.10.33.39.58.38.83.82.7 + 25 36.3.69.52.50.10.33.39.58.38.83.82.7 + 24 3.69.52.50.10.33.39.58.38.83.82.7 23 3.69.52.50.10.33.39.58.38.83.82.7 + 22 69.52.50.10.33.39.58.38.83.82.7 21 69.52.50.10.33.39.58.38.83.82.7 + 20 52.50.10.33.39.58.38.83.82.7 19 52.50.10.33.39.58.38.83.82.7 + 18 50.10.33.39.58.38.83.82.7 17 50.10.33.39.58.38.83.82.7 + 16 10.33.39.58.38.83.82.7 15 10.33.39.58.38.83.82.7 + 14 33.39.58.38.83.82.7 13 33.39.58.38.83.82.7 12 39.58.38.83.82.7 + 11 39.58.38.83.82.7 10 58.38.83.82.7 9 58.38.83.82.7 8 38.83.82.7 + 7 38.83.82.7 6 83.82.7 5 83.82.7 4 82.7 3 82.7 2 7 1 7} do_execsql_test 1.4.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {201 {} 200 {} 199 {} 198 {} 197 {} 196 {} 195 {} 194 {} 193 {} 192 {} 191 {} 190 {} 189 {} 188 {} 187 {} 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} 179 {} 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} 171 {} 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} 163 {} 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} 155 {} 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} 147 {} 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} 139 {} 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} 131 {} 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} 123 {} 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} 115 {} 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} 107 {} 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} 99 {} 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} 90 {} 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} 81 {} 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} 72 {} 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} 63 {} 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} 54 {} 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} 45 {} 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} 36 {} 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} 27 {} 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {191 {} 190 {} 189 {} 188 {} 187 {} 186 {} 185 {} 184 {} + 183 {} 182 {} 181 {} 180 {} 179 {} 178 {} 177 {} 176 {} + 175 {} 174 {} 173 {} 172 {} 171 {} 170 {} 169 {} 168 {} + 167 {} 166 {} 165 {} 164 {} 163 {} 162 {} 161 {} 160 {} + 159 {} 158 {} 157 {} 156 {} 155 {} 154 {} 153 {} 152 {} + 151 {} 150 {} 149 {} 148 {} 147 {} 146 {} 145 {} 144 {} + 143 {} 142 {} 141 {} 140 {} 139 {} 138 {} 137 {} 136 {} + 135 {} 134 {} 133 {} 132 {} 131 {} 130 {} 129 {} 128 {} + 127 {} 126 {} 125 {} 124 {} 123 {} 122 {} 121 {} 120 {} + 119 {} 118 {} 117 {} 116 {} 115 {} 114 {} 113 {} 112 {} + 111 {} 110 {} 109 {} 108 {} 107 {} 106 {} 105 {} 104 {} + 103 {} 102 {} 101 {} 100 {} 99 {} 98 {} 97 {} 96 {} 95 {} + 94 {} 93 {} 92 {} 91 {} 90 {} 89 {} 88 {} 87 {} 86 {} + 85 {} 84 {} 83 {} 82 {} 81 {} 80 {} 79 {} 78 {} 77 {} + 76 {} 75 {} 74 {} 73 {} 72 {} 71 {} 70 {} 69 {} 68 {} + 67 {} 66 {} 65 {} 64 {} 63 {} 62 {} 61 {} 60 {} 59 {} + 58 {} 57 {} 56 {} 55 {} 54 {} 53 {} 52 {} 51 {} 50 {} + 49 {} 48 {} 47 {} 46 {} 45 {} 44 {} 43 {} 42 {} 41 {} + 40 {} 39 {} 38 {} 37 {} 36 {} 35 {} 34 {} 33 {} 32 {} + 31 {} 30 {} 29 {} 28 {} 27 {} 26 {} 25 {} 24 {} 23 {} + 22 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} + 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} + 3 {} 2 {} 1 {}} do_execsql_test 1.4.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {}} do_execsql_test 1.4.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 18 29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 17 47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 13 78.72.98.87.73.96.74.90.75.91.69.39.7 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 5 75.91.69.39.7 4 91.69.39.7 3 69.39.7 2 39.7 1 7 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 17 84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 13 89.29.9.21.12.88.55.70.58.81.91.52.58 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 5 58.81.91.52.58 4 81.91.52.58 3 91.52.58 2 52.58 1 58 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 17 23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 13 76.63.73.65.20.8.77.19.9.23.15.50.38 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 17 16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 13 4.87.65.5.31.49.2.26.72.13.36.10.83 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 1 83 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 17 65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 13 42.80.58.11.95.90.85.47.33.14.3.33.82 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 5 33.14.3.33.82 4 14.3.33.82 3 3.33.82 2 33.82 1 82 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 18 29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 17 47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 13 78.72.98.87.73.96.74.90.75.91.69.39.7 + 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 + 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 + 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 + 5 75.91.69.39.7 4 91.69.39.7 3 69.39.7 2 39.7 1 7 19 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 17 84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 13 89.29.9.21.12.88.55.70.58.81.91.52.58 + 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 + 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 + 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 + 5 58.81.91.52.58 4 81.91.52.58 3 91.52.58 2 52.58 1 58 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 17 23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 13 76.63.73.65.20.8.77.19.9.23.15.50.38 + 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 + 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 + 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 + 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 17 16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 13 4.87.65.5.31.49.2.26.72.13.36.10.83 + 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 + 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 + 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 + 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 1 83 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 17 65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 13 42.80.58.11.95.90.85.47.33.14.3.33.82 + 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 + 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 + 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 + 5 33.14.3.33.82 4 14.3.33.82 3 3.33.82 2 33.82 1 82 19 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} do_execsql_test 1.5.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 74 74 74 74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {{} {} {} {} 89 89 96 96 96 96 96 96 96 96 96 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99} do_execsql_test 1.5.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {{} {} {} {} 89 81 81 59 38 38 38 38 38 38 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 3 3 3 3 3 3 + 3 3 3 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1} do_execsql_test 1.5.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.5.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.5.3.3 { SELECT row_number() OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.5.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.5.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.5.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.5.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.5.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.5.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.5.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.5.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.5.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.5.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.5.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.5.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.5.6.1 { SELECT @@ -2248,7 +8746,33 @@ do_execsql_test 1.5.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.5.7.1 { @@ -2256,11 +8780,13 @@ do_test 1.5.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2271,11 +8797,13 @@ do_test 1.5.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2286,11 +8814,13 @@ do_test 1.5.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2301,11 +8831,13 @@ do_test 1.5.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2316,11 +8848,13 @@ do_test 1.5.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2331,11 +8865,13 @@ do_test 1.5.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2346,11 +8882,13 @@ do_test 1.5.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2361,11 +8899,13 @@ do_test 1.5.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2376,11 +8916,13 @@ do_test 1.5.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2391,11 +8933,13 @@ do_test 1.5.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2406,11 +8950,13 @@ do_test 1.5.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2421,11 +8967,13 @@ do_test 1.5.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2436,11 +8984,13 @@ do_test 1.5.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2451,11 +9001,13 @@ do_test 1.5.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2466,11 +9018,13 @@ do_test 1.5.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2481,11 +9035,13 @@ do_test 1.5.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2496,11 +9052,13 @@ do_test 1.5.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2511,11 +9069,13 @@ do_test 1.5.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2526,250 +9086,1802 @@ do_test 1.5.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.5.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 1 76 44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224} +} {{} {} {} {} 99 92 108 72 52 83 55 79 109 65 26 + 120 119 50 70 103 80 124 36 96 59 124 116 110 57 + 51 52 130 103 74 87 48 128 117 105 136 131 71 133 + 92 109 63 84 109 57 146 78 147 113 74 88 150 87 + 110 65 121 106 110 124 85 145 107 161 171 150 156 + 80 171 120 109 158 114 111 136 147 87 173 124 168 + 173 162 132 101 154 167 190 161 110 156 195 198 102 + 123 177 169 140 111 180 119 160 197 152 124 121 134 + 146 147 132 213 141 193 200 210 157 132 136 175 161 + 218 188 226 191 187 208 211 179 138 144 223 196 214 + 170 212 202 163 184 172 173 195 229 240 187 210 200 + 163 227 228 223 191 252 235 225 243 172 187 202 179 + 179 182 231 261 207 263 206 189 209 212 276 181 274 + 249 239 234 213 234 269 196 271 221 210 229 235 250 + 223 232 229 279} do_execsql_test 1.5.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 1 147 106 109 168 134 218 191 212 229 240 {} {} {} {} 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 {} {} {} {} 11 79 63 84 78 120 87 162 124 141 138 227 228 {} {} {} {} 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 {} {} {} {} 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 {} {} {} {} 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 {} {} {} {} 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 {} {} {} {} 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 {} {} {} {} 52 83 103 36 88 171 158 156 198 121 210 132 {} {} {} {} 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163} +} {{} {} {} {} 147 106 109 168 134 218 191 212 229 + 240 {} {} {} {} 92 109 105 136 146 65 156 132 154 + 102 123 119 160 152 146 147 136 {} {} {} {} 79 63 + 84 78 120 87 162 124 141 138 227 228 {} {} {} {} + 124 57 130 92 57 110 114 136 147 167 110 180 193 + 191 252 187 179 {} {} {} {} 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 {} {} {} {} + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 {} {} {} {} 108 65 26 70 51 52 + 128 109 121 124 85 107 150 195 226 172 173 {} {} + {} {} 119 50 124 96 110 87 48 110 173 124 197 211 + 144 196 195 200 {} {} {} {} 52 83 103 36 88 171 + 158 156 198 121 210 132 {} {} {} {} 99 72 55 120 + 59 109 150 161 111 101 200 175 188 170 202 163 184 + 163} do_execsql_test 1.5.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 1 65 102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171} +} {{} {} {} {} 65 102 87 138 57 181 80 111 26 48 + 144 207 36 121 132 101 163 172 196 119 136 63 124 + 179 110 179 182 74 132 189 51 52 85 216 163 134 + 123 210 78 141 57 187 71 87 172 173 50 224 88 59 + 111 170 109 213 223 146 147 84 114 191 206 221 157 + 161 209 229 74 140 107 187 207 212 124 202 52 232 + 55 184 229 106 132 152 120 92 110 179 235 65 70 + 87 110 195 200 175 234 160 234 136 80 113 187 109 + 121 124 196 156 210 239 250 72 109 188 202 191 105 + 154 79 231 147 225 103 161 169 223 96 83 249 212 + 162 227 228 167 180 193 117 177 214 145 208 235 150 + 110 211 103 158 200 168 229 92 156 243 280 279 116 + 173 269 271 131 133 223 128 173 197 210 99 150 161 + 147 218 240 109 136 146 261 263 124 130 252 171 190 + 213 274 108 195 226 119 124} do_execsql_test 1.5.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 1 196 134 109 213 223 106 234 191 212 168 {} {} {} {} 65 102 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 {} {} {} {} 11 87 138 63 124 179 78 141 84 120 234 79 231 {} {} {} {} 57 181 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 {} {} {} {} 80 182 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 {} {} {} {} 111 206 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 {} {} {} {} 26 51 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 {} {} {} {} 48 144 207 216 50 224 124 202 87 110 195 200 196 96 110 211 {} {} {} {} 36 121 132 88 52 232 156 210 239 250 83 103 {} {} {} {} 101 163 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150} +} {{} {} {} {} 196 134 109 213 223 106 234 191 212 + 168 {} {} {} {} 65 102 119 136 123 210 146 147 + 132 152 160 105 154 92 156 243 109 {} {} {} {} 87 + 138 63 124 179 78 141 84 120 234 79 231 {} {} {} + {} 57 181 110 179 57 187 114 191 206 221 92 110 + 136 147 167 180 193 {} {} {} {} 80 182 71 157 161 + 209 229 179 235 80 225 117 177 214 116 {} {} {} + {} 111 74 132 189 87 74 140 113 187 103 161 169 + 145 208 235 131 133 {} {} {} {} 26 51 52 85 172 + 173 107 187 207 212 65 70 109 121 124 223 150 {} + {} {} {} 48 144 207 216 50 224 124 202 87 110 195 + 200 196 96 110 211 {} {} {} {} 36 121 132 88 52 + 232 156 210 239 250 83 103 {} {} {} {} 101 163 + 172 163 59 111 170 55 184 229 175 72 109 188 202 + 249 200 99} do_execsql_test 1.5.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163} +} {{} {} {} {} 147 106 109 168 134 218 191 212 229 + 240 213 234 196 223 92 109 105 136 146 65 156 132 + 154 102 123 119 160 152 146 147 136 243 261 263 210 + 79 63 84 78 120 87 162 124 141 138 227 228 179 + 231 234 280 124 57 130 92 57 110 114 136 147 167 + 110 180 193 191 252 187 179 206 181 221 279 80 116 + 117 71 80 171 173 177 157 161 179 214 225 182 209 + 269 271 235 229 103 74 131 133 113 74 87 145 190 + 161 169 140 111 132 213 187 208 223 235 189 274 108 + 65 26 70 51 52 128 109 121 124 85 107 150 195 226 + 172 173 187 223 207 212 119 50 124 96 110 87 48 + 110 173 124 197 211 144 196 195 200 202 224 216 207 + 52 83 103 36 88 171 158 156 198 121 210 132 210 + 239 250 232 99 72 55 120 59 109 150 161 111 101 + 200 175 188 170 202 163 184 163} do_execsql_test 1.5.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} {} {} {} {} 46 62 62 {} {} {} {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 {} 74 {} 27 {} {} 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} {} {} 23 {} 74 93 {} 23 29 3 1 41 {} 65 33 2 98 86 89 25 76 {} 40 38 15 {} {} 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33 99} +} {{} {} {} {} {} {} {} {} {} {} 39 {} {} {} {} + {} {} {} 91 {} {} {} {} {} {} 54 54 {} {} {} + {} 62 {} {} {} {} {} 23 {} {} {} 97 86 {} 59 + {} 84 {} {} 78 65 {} 16 90 81 {} 59 56 {} 54 + {} 85 {} {} {} {} 38 {} 32 47 {} 74 35 47 98 + 96 {} 24 {} {} 29 12 46 36 53 {} 81 27 56 {} + {} 81 93 63 81 91 68 53 99 89 13 12 97 91 29 + 7 7 78 35 84 53 84 58 61 91 99 15 61 98 16 5 + 75 56 2 37 3 96 62 95 43 63 35 78 16 67 43 16 + 16 90 72 98 85 56 90 46 29 29 4 74 74 2 76 41 + 46 77 24 27 97 46 89 1 85 1 74 78 61 85 51 59 + 35 30 56 25 47 28 73 6 73 74 93 43 3 56 47 85 + 61 61 93 9 97 62} do_execsql_test 1.5.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 81 {} {} {} {} {} {} 21 {} {} {} {} {} {} {} {} {} {} 12 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} 55 {} 15 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} {} 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 29 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 91 {} {} {} 91 {} {} {} {} {} {} + 11 {} {} {} {} {} {} {} {} {} {} {} {} {} 32 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} {} 47 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 9 9 {} {} {}} do_execsql_test 1.5.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} {} {} {} 2 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 10 11 11 11 11 11 12 12 12 12 12 13 13 13 14 14 14 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 19 19 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 25 25 25 25 26 26 27 27 28 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 31 31 31 32 32 33 33 33 33 33 33 33 34 34 34 35 35 35 35 35 35 36 36 36 36 36 36 36 36 36 36 36 37 37 37 38 38 38 38 38 39 39 39 39 39 39 40 40 40 41 41 41 41 42 42 42 43 43 43 43 43 43 43 43 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47} +} {{} {} {} {} {} {} {} {} {} {} {} 5 6 6 6 7 + 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 11 + 11 12 12 12 12 12 12 13 13 14 14 15 15 15 15 + 15 15 16 16 16 16 16 16 17 17 17 17 19 19 19 + 19 20 20 21 21 21 21 21 21 22 22 22 22 22 23 + 23 23 24 25 25 26 26 27 27 27 27 27 27 29 29 + 29 30 30 30 31 31 31 31 31 32 33 33 33 33 33 + 33 33 33 33 33 33 34 34 34 34 34 34 34 35 35 + 36 36 36 37 37 37 37 37 37 38 38 38 38 38 38 + 39 39 39 39 39 40 41 41 41 41 41 42 43 43 43 + 43 43 44 44 44 44 46 46 46 47 47 47 47 47 47 + 47 47 47 47 47 49 49 49 50 51 51 51 52 52 52 + 53 53 54 54 55 55} do_execsql_test 1.5.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} {} {} 30 {} {} {} 1 40 {} 50 11 81 {} 40 {} 50 81 40 {} {} 50 {} {} {} 41 81 {} 41 {} 2 30 2 81 82 {} {} 10 {} {} 81 {} 41 10 81 30 81 {} {} 3 23 {} 3 61 80 {} {} 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 20 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 40 {} {} {} 40 {} 50 {} {} {} {} + 50 {} {} {} 41 {} 10 91 61 {} 30 {} 10 61 30 + {} {} 10 {} {} {} {} 1 {} 22 80 22 91 93 {} + {} 30 {} {} 91 {} 1 30 91 80 91 {} 43 {} {} + 21 20 {} {} 74 21 21 2 74 33 81 21 {} 64 2 21 + 93 62 14 14 3 91 11 24 55 93 93 62 90 91 55 3 + 24 14 24 91 55 15 72 60 72 61 61 34 43 43 43 + 61 12 4 15 15 51 51 12 23 12 12 25 41 25 13 + 94 12 70 12 84 32 84 94 70 33 12 12 32 41 91 + 70 22 33 84 80 31 75 84 53 75 80 84 80 53 53 + 53 22 44 63 42 95 31 63 44 44 31 90 74 52 63 + 31 63 1 42 90 90 95 3 42} do_execsql_test 1.5.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {{} {} {} {} 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.5.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} 0 0 0 0 0 0 0 0 0 0 0 {} {} {} {} 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 {} {} {} {} 2 2 2 2 2 2 2 2 2 2 2 2 2 {} {} {} {} 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 {} {} {} {} 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 {} {} {} {} 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 {} {} {} {} 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 {} {} {} {} 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 {} {} {} {} 38 38 38 38 38 38 38 38 38 38 38 38 {} {} {} {} 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {{} {} {} {} 90 90 90 90 90 90 90 90 90 90 {} + {} {} {} 81 81 81 81 81 81 81 81 81 81 81 81 + 81 81 81 81 81 {} {} {} {} 62 62 62 62 62 62 + 62 62 62 62 62 62 {} {} {} {} 93 93 93 93 93 + 93 93 93 93 93 93 93 93 93 93 93 93 {} {} {} + {} 54 54 54 54 54 54 54 54 54 54 54 54 54 54 + 54 {} {} {} {} 65 65 65 65 65 65 65 65 65 65 + 65 65 65 65 65 65 65 {} {} {} {} 96 96 96 96 + 96 96 96 96 96 96 96 96 96 96 96 96 96 {} {} + {} {} 97 97 97 97 97 97 97 97 97 97 97 97 97 + 97 97 97 {} {} {} {} 38 38 38 38 38 38 38 38 + 38 38 38 38 {} {} {} {} 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.5.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {{} {} {} {} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1} do_execsql_test 1.5.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 0 0 0 0 0 0 0 0 0 0 {} {} {} {} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 {} {} {} {} 2 2 2 2 2 2 2 2 2 2 2 2 2 {} {} {} {} 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 {} {} {} {} 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 {} {} {} {} 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 {} {} {} {} 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 {} {} {} {} 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 {} {} {} {} 8 8 8 8 8 8 8 8 8 8 8 8 {} {} {} {} 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9} +} {{} {} {} {} 10 10 10 10 10 10 10 10 10 10 {} + {} {} {} 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 {} {} {} {} 2 2 2 2 2 2 2 2 2 2 2 2 + {} {} {} {} 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 {} {} {} {} 4 4 4 4 4 4 4 4 4 4 4 + 4 4 4 4 {} {} {} {} 5 5 5 5 5 5 5 5 5 5 + 5 5 5 5 5 5 5 {} {} {} {} 6 6 6 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 {} {} {} {} 7 7 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 {} {} {} {} 8 8 + 8 8 8 8 8 8 8 8 8 8 {} {} {} {} 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9} do_execsql_test 1.5.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {{} {} {} {} 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90} do_execsql_test 1.5.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.5.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.5.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.5.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.5.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.5.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.5.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} 0 0.74 0.74.41 0.74.41.74 0.74.41.74.23 0.74.41.74.23.99 0.74.41.74.23.99.26 0.74.41.74.23.99.26.33 0.74.41.74.23.99.26.33.2 0.74.41.74.23.99.26.33.2.89 0.74.41.74.23.99.26.33.2.89.81 0.74.41.74.23.99.26.33.2.89.81.96 0.74.41.74.23.99.26.33.2.89.81.96.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27} +} {{} {} {} {} 89 89.81 89.81.96 89.81.96.59 89.81.96.59.38 + 89.81.96.59.38.68 89.81.96.59.38.68.39 89.81.96.59.38.68.39.62 + 89.81.96.59.38.68.39.62.91 89.81.96.59.38.68.39.62.91.46 + 89.81.96.59.38.68.39.62.91.46.6 89.81.96.59.38.68.39.62.91.46.6.99 + 89.81.96.59.38.68.39.62.91.46.6.99.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83} do_execsql_test 1.5.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} 0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 {} {} {} {} 41 41.81 41.81.91 41.81.91.61 41.81.91.61.91 41.81.91.61.91.91 41.81.91.61.91.91.1 41.81.91.61.91.91.1.81 41.81.91.61.91.91.1.81.41 41.81.91.61.91.91.1.81.41.61 41.81.91.61.91.91.1.81.41.61.1 41.81.91.61.91.91.1.81.41.61.1.21 41.81.91.61.91.91.1.81.41.61.1.21.11 41.81.91.61.91.91.1.81.41.61.1.21.11.51 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 {} {} {} {} 2 2.62 2.62.12 2.62.12.32 2.62.12.32.22 2.62.12.32.22.42 2.62.12.32.22.42.2 2.62.12.32.22.42.2.72 2.62.12.32.22.42.2.72.12 2.62.12.32.22.42.2.72.12.22 2.62.12.32.22.42.2.72.12.22.2 2.62.12.32.22.42.2.72.12.22.2.72 2.62.12.32.22.42.2.72.12.22.2.72.72 {} {} {} {} 23 23.33 23.33.93 23.33.93.23 23.33.93.23.93 23.33.93.23.93.43 23.33.93.23.93.43.3 23.33.93.23.93.43.3.43 23.33.93.23.93.43.3.43.33 23.33.93.23.93.43.3.43.33.53 23.33.93.23.93.43.3.43.33.53.63 23.33.93.23.93.43.3.43.33.53.63.73 23.33.93.23.93.43.3.43.33.53.63.73.13 23.33.93.23.93.43.3.43.33.53.63.73.13.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 {} {} {} {} 74 74.74 74.74.54 74.74.54.84 74.74.54.84.74 74.74.54.84.74.24 74.74.54.84.74.24.4 74.74.54.84.74.24.4.94 74.74.54.84.74.24.4.94.84 74.74.54.84.74.24.4.94.84.74 74.74.54.84.74.24.4.94.84.74.34 74.74.54.84.74.24.4.94.84.74.34.34 74.74.54.84.74.24.4.94.84.74.34.34.44 74.74.54.84.74.24.4.94.84.74.34.34.44.74 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 {} {} {} {} 65 65.35 65.35.85 65.35.85.85 65.35.85.85.55 65.35.85.85.55.15 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 65.35.85.85.55.15.25.75.95 65.35.85.85.55.15.25.75.95.65 65.35.85.85.55.15.25.75.95.65.65 65.35.85.85.55.15.25.75.95.65.65.35 65.35.85.85.55.15.25.75.95.65.65.35.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 {} {} {} {} 26 26.96 26.96.46 26.96.46.6 26.96.46.6.46 26.96.46.6.46.16 26.96.46.6.46.16.16 26.96.46.6.46.16.16.86 26.96.46.6.46.16.16.86.56 26.96.46.6.46.16.16.86.56.56 26.96.46.6.46.16.16.86.56.56.56 26.96.46.6.46.16.16.86.56.56.56.16 26.96.46.6.46.16.16.86.56.56.56.16.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 {} {} {} {} 97 97.27 97.27.97 97.27.97.67 97.27.97.67.77 97.27.97.67.77.47 97.27.97.67.77.47.7 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 {} {} {} {} 38 38.68 38.68.78 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 38.68.78.8.28.98.78.58.98 38.68.78.8.28.98.78.58.98.8 38.68.78.8.28.98.78.58.98.8.88 38.68.78.8.28.98.78.58.98.8.88.8 {} {} {} {} 99 99.89 99.89.59 99.89.59.39 99.89.59.39.99 99.89.59.39.99.29 99.89.59.39.99.29.59 99.89.59.39.99.29.59.89 99.89.59.39.99.29.59.89.89 99.89.59.39.99.29.59.89.89.29 99.89.59.39.99.29.59.89.89.29.9 99.89.59.39.99.29.59.89.89.29.9.79 99.89.59.39.99.29.59.89.89.29.9.79.49 99.89.59.39.99.29.59.89.89.29.9.79.49.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9} +} {{} {} {} {} 90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 + 90.40.30.80.20.90 90.40.30.80.20.90.60 90.40.30.80.20.90.60.70 + 90.40.30.80.20.90.60.70.80 90.40.30.80.20.90.60.70.80.90 {} {} {} + {} 81 81.91 81.91.61 81.91.61.91 81.91.61.91.91 + 81.91.61.91.91.1 81.91.61.91.91.1.81 81.91.61.91.91.1.81.41 + 81.91.61.91.91.1.81.41.61 81.91.61.91.91.1.81.41.61.1 + 81.91.61.91.91.1.81.41.61.1.21 81.91.61.91.91.1.81.41.61.1.21.11 + 81.91.61.91.91.1.81.41.61.1.21.11.51 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 {} {} {} {} 62 + 62.12 62.12.32 62.12.32.22 62.12.32.22.42 62.12.32.22.42.2 + 62.12.32.22.42.2.72 62.12.32.22.42.2.72.12 62.12.32.22.42.2.72.12.22 + 62.12.32.22.42.2.72.12.22.2 62.12.32.22.42.2.72.12.22.2.72 + 62.12.32.22.42.2.72.12.22.2.72.72 {} {} {} {} 93 93.23 + 93.23.93 93.23.93.43 93.23.93.43.3 93.23.93.43.3.43 + 93.23.93.43.3.43.33 93.23.93.43.3.43.33.53 93.23.93.43.3.43.33.53.63 + 93.23.93.43.3.43.33.53.63.73 93.23.93.43.3.43.33.53.63.73.13 + 93.23.93.43.3.43.33.53.63.73.13.73 93.23.93.43.3.43.33.53.63.73.13.73.73 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 {} {} {} {} 54 + 54.84 54.84.74 54.84.74.24 54.84.74.24.4 54.84.74.24.4.94 + 54.84.74.24.4.94.84 54.84.74.24.4.94.84.74 54.84.74.24.4.94.84.74.34 + 54.84.74.24.4.94.84.74.34.34 54.84.74.24.4.94.84.74.34.34.44 + 54.84.74.24.4.94.84.74.34.34.44.74 54.84.74.24.4.94.84.74.34.34.44.74.64 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 {} {} {} {} 65 + 65.35 65.35.85 65.35.85.85 65.35.85.85.55 65.35.85.85.55.15 + 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 65.35.85.85.55.15.25.75.95 + 65.35.85.85.55.15.25.75.95.65 65.35.85.85.55.15.25.75.95.65.65 + 65.35.85.85.55.15.25.75.95.65.65.35 65.35.85.85.55.15.25.75.95.65.65.35.5 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 {} {} {} {} 96 + 96.46 96.46.6 96.46.6.46 96.46.6.46.16 96.46.6.46.16.16 + 96.46.6.46.16.16.86 96.46.6.46.16.16.86.56 96.46.6.46.16.16.86.56.56 + 96.46.6.46.16.16.86.56.56.56 96.46.6.46.16.16.86.56.56.56.16 + 96.46.6.46.16.16.86.56.56.56.16.36 96.46.6.46.16.16.86.56.56.56.16.36.76 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 {} {} {} {} 97 + 97.27 97.27.97 97.27.97.67 97.27.97.67.77 97.27.97.67.77.47 + 97.27.97.67.77.47.7 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 + 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 + 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 {} {} {} {} 38 + 38.68 38.68.78 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 + 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 38.68.78.8.28.98.78.58.98 + 38.68.78.8.28.98.78.58.98.8 38.68.78.8.28.98.78.58.98.8.88 + 38.68.78.8.28.98.78.58.98.8.88.8 {} {} {} {} 89 89.59 + 89.59.39 89.59.39.99 89.59.39.99.29 89.59.39.99.29.59 + 89.59.39.99.29.59.89 89.59.39.99.29.59.89.89 89.59.39.99.29.59.89.89.29 + 89.59.39.99.29.59.89.89.29.9 89.59.39.99.29.59.89.89.29.9.79 + 89.59.39.99.29.59.89.89.29.9.79.49 89.59.39.99.29.59.89.89.29.9.79.49.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9} do_execsql_test 1.5.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 0.1 0.1.1 0.1.1.2 0.1.1.2.2 0.1.1.2.2.2 0.1.1.2.2.2.3 0.1.1.2.2.2.3.3 0.1.1.2.2.2.3.3.4 0.1.1.2.2.2.3.3.4.5 0.1.1.2.2.2.3.3.4.5.5 0.1.1.2.2.2.3.3.4.5.5.6 0.1.1.2.2.2.3.3.4.5.5.6.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98} +} {{} {} {} {} 1 1.1 1.1.2 1.1.2.2 1.1.2.2.3 1.1.2.2.3.3 + 1.1.2.2.3.3.4 1.1.2.2.3.3.4.5 1.1.2.2.3.3.4.5.6 1.1.2.2.3.3.4.5.6.7 + 1.1.2.2.3.3.4.5.6.7.7 1.1.2.2.3.3.4.5.6.7.7.7 1.1.2.2.3.3.4.5.6.7.7.7.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97} do_execsql_test 1.5.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 0.10 0.10.20 0.10.20.30 0.10.20.30.30 0.10.20.30.30.30 0.10.20.30.30.30.40 0.10.20.30.30.30.40.50 0.10.20.30.30.30.40.50.60 0.10.20.30.30.30.40.50.60.70 0.10.20.30.30.30.40.50.60.70.80 {} {} {} {} 1 1.1 1.1.11 1.1.11.11 1.1.11.11.21 1.1.11.11.21.21 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 1.1.11.11.21.21.31.31.41 1.1.11.11.21.21.31.31.41.41 1.1.11.11.21.21.31.31.41.41.41 1.1.11.11.21.21.31.31.41.41.41.51 1.1.11.11.21.21.31.31.41.41.41.51.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91 {} {} {} {} 2 2.2 2.2.2 2.2.2.12 2.2.2.12.12 2.2.2.12.12.12 2.2.2.12.12.12.22 2.2.2.12.12.12.22.22 2.2.2.12.12.12.22.22.32 2.2.2.12.12.12.22.22.32.42 2.2.2.12.12.12.22.22.32.42.52 2.2.2.12.12.12.22.22.32.42.52.62 2.2.2.12.12.12.22.22.32.42.52.62.62 {} {} {} {} 3 3.3 3.3.13 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.23 3.3.13.13.23.23.23.33 3.3.13.13.23.23.23.33.33 3.3.13.13.23.23.23.33.33.33 3.3.13.13.23.23.23.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73 {} {} {} {} 4 4.14 4.14.24 4.14.24.34 4.14.24.34.34 4.14.24.34.34.34 4.14.24.34.34.34.34 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84 {} {} {} {} 5 5.5 5.5.15 5.5.15.15 5.5.15.15.15 5.5.15.15.15.25 5.5.15.15.15.25.35 5.5.15.15.15.25.35.35 5.5.15.15.15.25.35.35.55 5.5.15.15.15.25.35.35.55.55 5.5.15.15.15.25.35.35.55.55.65 5.5.15.15.15.25.35.35.55.55.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 {} {} {} {} 6 6.16 6.16.16 6.16.16.16 6.16.16.16.26 6.16.16.16.26.26 6.16.16.16.26.26.26 6.16.16.16.26.26.26.36 6.16.16.16.26.26.26.36.36 6.16.16.16.26.26.26.36.36.36 6.16.16.16.26.26.26.36.36.36.36 6.16.16.16.26.26.26.36.36.36.36.46 6.16.16.16.26.26.26.36.36.36.36.46.46 6.16.16.16.26.26.26.36.36.36.36.46.46.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76 {} {} {} {} 7 7.7 7.7.7 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 7.7.7.17.27.27.37.37 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47.57 7.7.7.17.27.27.37.37.47.47.47.47.57.67 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 {} {} {} {} 8 8.8 8.8.8 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 8.8.8.28.38.38.58.58 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 {} {} {} {} 9 9.9 9.9.9 9.9.9.19 9.9.9.19.29 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 9.9.9.19.29.29.29.39.39 9.9.9.19.29.29.29.39.39.39 9.9.9.19.29.29.29.39.39.39.49 9.9.9.19.29.29.29.39.39.39.49.59 9.9.9.19.29.29.29.39.39.39.49.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89} +} {{} {} {} {} 10 10.20 10.20.30 10.20.30.30 10.20.30.30.30 + 10.20.30.30.30.40 10.20.30.30.30.40.50 10.20.30.30.30.40.50.60 + 10.20.30.30.30.40.50.60.70 10.20.30.30.30.40.50.60.70.80 {} {} {} + {} 1 1.1 1.1.11 1.1.11.11 1.1.11.11.21 1.1.11.11.21.21 + 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 1.1.11.11.21.21.31.31.41 + 1.1.11.11.21.21.31.31.41.41 1.1.11.11.21.21.31.31.41.41.51 + 1.1.11.11.21.21.31.31.41.41.51.61 1.1.11.11.21.21.31.31.41.41.51.61.61 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91 {} {} {} {} 2 + 2.2 2.2.12 2.2.12.12 2.2.12.12.12 2.2.12.12.12.22 + 2.2.12.12.12.22.22 2.2.12.12.12.22.22.32 2.2.12.12.12.22.22.32.42 + 2.2.12.12.12.22.22.32.42.52 2.2.12.12.12.22.22.32.42.52.62 + 2.2.12.12.12.22.22.32.42.52.62.62 {} {} {} {} 3 3.3 3.3.13 + 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.33 + 3.3.13.13.23.23.33.33 3.3.13.13.23.23.33.33.33 + 3.3.13.13.23.23.33.33.33.33 3.3.13.13.23.23.33.33.33.33.43 + 3.3.13.13.23.23.33.33.33.33.43.43 3.3.13.13.23.23.33.33.33.33.43.43.53 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73 {} {} {} {} 4 + 4.14 4.14.24 4.14.24.34 4.14.24.34.34 4.14.24.34.34.34 + 4.14.24.34.34.34.34 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 + 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 + 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84 {} {} {} {} 5 5.15 + 5.15.15 5.15.15.15 5.15.15.15.25 5.15.15.15.25.35 + 5.15.15.15.25.35.35 5.15.15.15.25.35.35.55 5.15.15.15.25.35.35.55.55 + 5.15.15.15.25.35.35.55.55.65 5.15.15.15.25.35.35.55.55.65.65 + 5.15.15.15.25.35.35.55.55.65.65.65 5.15.15.15.25.35.35.55.55.65.65.65.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 {} {} {} {} 6 + 6.16 6.16.16 6.16.16.16 6.16.16.16.26 6.16.16.16.26.26 + 6.16.16.16.26.26.36 6.16.16.16.26.26.36.36 6.16.16.16.26.26.36.36.36 + 6.16.16.16.26.26.36.36.36.36 6.16.16.16.26.26.36.36.36.36.46 + 6.16.16.16.26.26.36.36.36.36.46.46 6.16.16.16.26.26.36.36.36.36.46.46.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76 {} {} {} {} 7 + 7.7 7.7.7 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 + 7.7.7.17.27.27.37.37 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 + 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 + 7.7.7.17.27.27.37.37.47.47.47.47.57 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 {} {} {} {} 8 8.8 + 8.8.8 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 + 8.8.8.28.38.38.58.58 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 + 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 {} {} + {} {} 9 9.9 9.9.9 9.9.9.19 9.9.9.19.29 9.9.9.19.29.29 + 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 9.9.9.19.29.29.29.39.39 + 9.9.9.19.29.29.29.39.39.39 9.9.9.19.29.29.29.39.39.39.49 + 9.9.9.19.29.29.29.39.39.39.49.59 9.9.9.19.29.29.29.39.39.39.49.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89} do_execsql_test 1.5.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2 -} {{} {} {} {} 0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 0.90.40.30.80.20.90.60.70.80.90.30 0.90.40.30.80.20.90.60.70.80.90.30.50 0.90.40.30.80.20.90.60.70.80.90.30.50.10 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9} +} {{} {} {} {} 90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 + 90.40.30.80.20.90 90.40.30.80.20.90.60 90.40.30.80.20.90.60.70 + 90.40.30.80.20.90.60.70.80 90.40.30.80.20.90.60.70.80.90 + 90.40.30.80.20.90.60.70.80.90.30 90.40.30.80.20.90.60.70.80.90.30.50 + 90.40.30.80.20.90.60.70.80.90.30.50.10 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9} do_execsql_test 1.5.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.5.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.5.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.5.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.5.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) -} {0 {} 0 {} 0 {} 0 {} 1 {} 2 74 3 74 4 74.74 5 74.74 6 74.74.99 7 74.74.99 8 74.74.99.33 9 74.74.99.33 10 74.74.99.33.89 11 74.74.99.33.89 12 74.74.99.33.89.96 13 74.74.99.33.89.96 14 74.74.99.33.89.96.38 15 74.74.99.33.89.96.38 16 74.74.99.33.89.96.38.39 17 74.74.99.33.89.96.38.39 18 74.74.99.33.89.96.38.39.91 19 74.74.99.33.89.96.38.39.91 20 74.74.99.33.89.96.38.39.91.6 21 74.74.99.33.89.96.38.39.91.6 22 74.74.99.33.89.96.38.39.91.6.97 23 74.74.99.33.89.96.38.39.91.6.97 24 74.74.99.33.89.96.38.39.91.6.97.46 25 74.74.99.33.89.96.38.39.91.6.97.46 26 74.74.99.33.89.96.38.39.91.6.97.46.54 27 74.74.99.33.89.96.38.39.91.6.97.46.54 28 74.74.99.33.89.96.38.39.91.6.97.46.54.8 29 74.74.99.33.89.96.38.39.91.6.97.46.54.8 30 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 31 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 32 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 33 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 34 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 35 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 36 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 37 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 38 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 39 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 40 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 41 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 42 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 43 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 44 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 45 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 46 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 47 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 48 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 49 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 50 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 51 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 52 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 53 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 54 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 55 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 56 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 57 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 58 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 59 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 60 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 61 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 62 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 63 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 64 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 65 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 66 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 67 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 68 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 69 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 70 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 71 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 72 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 73 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 74 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 75 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 76 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 77 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 78 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 79 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 80 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 81 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 82 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 83 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 84 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 85 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 86 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 87 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 88 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 89 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 90 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 91 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 92 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 93 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 94 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 95 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 96 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 97 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 98 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 99 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 100 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 101 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 102 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 103 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 104 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 105 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 106 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 107 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 108 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 109 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 110 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 111 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 112 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 113 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 114 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 115 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 116 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 117 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 118 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 119 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 120 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 121 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 122 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 123 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 124 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 125 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 126 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 127 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 128 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 129 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 130 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 131 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 132 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 133 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 134 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 135 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 136 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 137 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 138 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 139 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 140 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 141 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 142 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 143 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 144 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 145 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 146 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 147 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 148 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 149 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 150 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 151 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 152 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 153 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 154 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 155 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 156 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 157 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 158 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 159 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 160 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 161 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 162 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 163 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 164 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 165 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 166 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 167 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 168 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 169 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 170 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 171 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 172 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 173 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 174 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 175 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 176 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 177 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 178 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 179 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 180 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 181 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 182 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 183 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 184 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 185 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 186 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 187 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 188 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 189 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 190 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 191 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 192 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 193 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 194 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 195 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 196 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 197 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83} +} {0 {} 0 {} 0 {} 0 {} 1 89 2 89 3 89.96 4 89.96 5 89.96.38 + 6 89.96.38 7 89.96.38.39 8 89.96.38.39 9 89.96.38.39.91 + 10 89.96.38.39.91 11 89.96.38.39.91.6 12 89.96.38.39.91.6 + 13 89.96.38.39.91.6.97 14 89.96.38.39.91.6.97 15 89.96.38.39.91.6.97.46 + 16 89.96.38.39.91.6.97.46 17 89.96.38.39.91.6.97.46.54 + 18 89.96.38.39.91.6.97.46.54 19 89.96.38.39.91.6.97.46.54.8 + 20 89.96.38.39.91.6.97.46.54.8 21 89.96.38.39.91.6.97.46.54.8.29 + 22 89.96.38.39.91.6.97.46.54.8.29 23 89.96.38.39.91.6.97.46.54.8.29.84 + 24 89.96.38.39.91.6.97.46.54.8.29.84 + 25 89.96.38.39.91.6.97.46.54.8.29.84.23 + 26 89.96.38.39.91.6.97.46.54.8.29.84.23 + 27 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 28 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 29 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 30 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 31 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 32 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 33 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 34 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 35 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 36 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 37 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 38 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 39 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 40 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 41 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 42 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 43 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 44 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 45 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 46 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 47 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 48 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 49 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 50 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 51 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 52 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 53 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 54 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 55 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 56 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 57 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 58 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 59 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 60 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 61 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 62 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 63 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 64 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 65 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 66 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 67 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 68 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 69 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 70 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 71 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 72 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 73 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 74 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 75 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 76 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 77 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 78 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 79 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 80 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 81 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 82 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 83 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 84 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 85 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 86 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 87 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 88 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 89 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 90 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 91 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 92 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 93 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 94 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 95 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 96 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 97 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 98 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 99 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 100 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 101 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 102 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 103 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 104 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 105 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 106 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 107 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 108 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 109 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 110 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 111 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 112 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 113 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 114 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 115 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 116 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 117 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 118 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 119 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 120 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 121 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 122 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 123 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 124 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 125 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 126 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 127 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 128 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 129 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 130 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 131 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 132 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 133 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 134 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 135 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 136 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 137 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 138 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 139 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 140 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 141 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 142 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 143 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 144 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 145 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 146 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 147 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 148 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 149 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 150 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 151 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 152 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 153 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 154 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 155 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 156 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 157 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 158 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 159 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 160 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 161 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 162 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 163 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 164 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 165 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 166 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 167 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 168 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 169 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 170 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 171 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 172 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 173 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 174 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 175 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 176 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 177 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 178 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 179 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 180 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 181 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 182 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 183 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 184 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 185 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 186 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 187 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83} do_execsql_test 1.5.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) -} {0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 22 {} 23 {} 24 {} 25 {} 26 {} 27 {} 28 {} 29 {} 30 {} 31 {} 32 {} 33 {} 34 {} 35 {} 36 {} 37 {} 38 {} 39 {} 40 {} 41 {} 42 {} 43 {} 44 {} 45 {} 46 {} 47 {} 48 {} 49 {} 50 {} 51 {} 52 {} 53 {} 54 {} 55 {} 56 {} 57 {} 58 {} 59 {} 60 {} 61 {} 62 {} 63 {} 64 {} 65 {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} 72 {} 73 {} 74 {} 75 {} 76 {} 77 {} 78 {} 79 {} 80 {} 81 {} 82 {} 83 {} 84 {} 85 {} 86 {} 87 {} 88 {} 89 {} 90 {} 91 {} 92 {} 93 {} 94 {} 95 {} 96 {} 97 {} 98 {} 99 {} 100 {} 101 {} 102 {} 103 {} 104 {} 105 {} 106 {} 107 {} 108 {} 109 {} 110 {} 111 {} 112 {} 113 {} 114 {} 115 {} 116 {} 117 {} 118 {} 119 {} 120 {} 121 {} 122 {} 123 {} 124 {} 125 {} 126 {} 127 {} 128 {} 129 {} 130 {} 131 {} 132 {} 133 {} 134 {} 135 {} 136 {} 137 {} 138 {} 139 {} 140 {} 141 {} 142 {} 143 {} 144 {} 145 {} 146 {} 147 {} 148 {} 149 {} 150 {} 151 {} 152 {} 153 {} 154 {} 155 {} 156 {} 157 {} 158 {} 159 {} 160 {} 161 {} 162 {} 163 {} 164 {} 165 {} 166 {} 167 {} 168 {} 169 {} 170 {} 171 {} 172 {} 173 {} 174 {} 175 {} 176 {} 177 {} 178 {} 179 {} 180 {} 181 {} 182 {} 183 {} 184 {} 185 {} 186 {} 187 {} 188 {} 189 {} 190 {} 191 {} 192 {} 193 {} 194 {} 195 {} 196 {} 197 {}} +} {0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} + 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} + 18 {} 19 {} 20 {} 21 {} 22 {} 23 {} 24 {} 25 {} 26 {} + 27 {} 28 {} 29 {} 30 {} 31 {} 32 {} 33 {} 34 {} 35 {} + 36 {} 37 {} 38 {} 39 {} 40 {} 41 {} 42 {} 43 {} 44 {} + 45 {} 46 {} 47 {} 48 {} 49 {} 50 {} 51 {} 52 {} 53 {} + 54 {} 55 {} 56 {} 57 {} 58 {} 59 {} 60 {} 61 {} 62 {} + 63 {} 64 {} 65 {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} + 72 {} 73 {} 74 {} 75 {} 76 {} 77 {} 78 {} 79 {} 80 {} + 81 {} 82 {} 83 {} 84 {} 85 {} 86 {} 87 {} 88 {} 89 {} + 90 {} 91 {} 92 {} 93 {} 94 {} 95 {} 96 {} 97 {} 98 {} + 99 {} 100 {} 101 {} 102 {} 103 {} 104 {} 105 {} 106 {} + 107 {} 108 {} 109 {} 110 {} 111 {} 112 {} 113 {} 114 {} + 115 {} 116 {} 117 {} 118 {} 119 {} 120 {} 121 {} 122 {} + 123 {} 124 {} 125 {} 126 {} 127 {} 128 {} 129 {} 130 {} + 131 {} 132 {} 133 {} 134 {} 135 {} 136 {} 137 {} 138 {} + 139 {} 140 {} 141 {} 142 {} 143 {} 144 {} 145 {} 146 {} + 147 {} 148 {} 149 {} 150 {} 151 {} 152 {} 153 {} 154 {} + 155 {} 156 {} 157 {} 158 {} 159 {} 160 {} 161 {} 162 {} + 163 {} 164 {} 165 {} 166 {} 167 {} 168 {} 169 {} 170 {} + 171 {} 172 {} 173 {} 174 {} 175 {} 176 {} 177 {} 178 {} + 179 {} 180 {} 181 {} 182 {} 183 {} 184 {} 185 {} 186 {} + 187 {}} do_execsql_test 1.5.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) -} {0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {}} +} {0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} + 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} + 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} + 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} + 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 {} + 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} + 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} + 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} + 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} + 15 {} 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} + 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} + 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} + 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} + 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {}} do_execsql_test 1.5.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) -} {0 {} 0 {} 0 {} 0 {} 1 89 2 89.6 3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 8 89.6.29.47.59.28.75.78 9 89.6.29.47.59.28.75.78.72 10 89.6.29.47.59.28.75.78.72.98 11 89.6.29.47.59.28.75.78.72.98.87 12 89.6.29.47.59.28.75.78.72.98.87.73 13 89.6.29.47.59.28.75.78.72.98.87.73.96 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 0 {} 0 {} 0 {} 0 {} 1 74 2 74.96 3 74.96.97 4 74.96.97.84 5 74.96.97.84.86 6 74.96.97.84.86.32 7 74.96.97.84.86.32.25 8 74.96.97.84.86.32.25.89 9 74.96.97.84.86.32.25.89.29 10 74.96.97.84.86.32.25.89.29.9 11 74.96.97.84.86.32.25.89.29.9.21 12 74.96.97.84.86.32.25.89.29.9.21.12 13 74.96.97.84.86.32.25.89.29.9.21.12.88 14 74.96.97.84.86.32.25.89.29.9.21.12.88.55 15 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70 16 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 74 2 74.38 3 74.38.46 4 74.38.46.23 5 74.38.46.23.61 6 74.38.46.23.61.3 7 74.38.46.23.61.3.1 8 74.38.46.23.61.3.1.76 9 74.38.46.23.61.3.1.76.63 10 74.38.46.23.61.3.1.76.63.73 11 74.38.46.23.61.3.1.76.63.73.65 12 74.38.46.23.61.3.1.76.63.73.65.20 13 74.38.46.23.61.3.1.76.63.73.65.20.8 14 74.38.46.23.61.3.1.76.63.73.65.20.8.77 15 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19 16 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 99 2 99.39 3 99.39.54 4 99.39.54.16 5 99.39.54.16.85 6 99.39.54.16.85.22 7 99.39.54.16.85.22.40 8 99.39.54.16.85.22.40.4 9 99.39.54.16.85.22.40.4.87 10 99.39.54.16.85.22.40.4.87.65 11 99.39.54.16.85.22.40.4.87.65.5 12 99.39.54.16.85.22.40.4.87.65.5.31 13 99.39.54.16.85.22.40.4.87.65.5.31.49 14 99.39.54.16.85.22.40.4.87.65.5.31.49.2 15 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26 16 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 0 {} 0 {} 0 {} 0 {} 1 33 2 33.91 3 33.91.8 4 33.91.8.65 5 33.91.8.65.85 6 33.91.8.65.85.55 7 33.91.8.65.85.55.56 8 33.91.8.65.85.55.56.42 9 33.91.8.65.85.55.56.42.80 10 33.91.8.65.85.55.56.42.80.58 11 33.91.8.65.85.55.56.42.80.58.11 12 33.91.8.65.85.55.56.42.80.58.11.95 13 33.91.8.65.85.55.56.42.80.58.11.95.90 14 33.91.8.65.85.55.56.42.80.58.11.95.90.85 15 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47 16 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 0 {} 0 {} 0 {} 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {}} +} {0 {} 0 {} 0 {} 0 {} 1 89 2 89.6 3 89.6.29 4 89.6.29.47 + 5 89.6.29.47.59 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 + 8 89.6.29.47.59.28.75.78 9 89.6.29.47.59.28.75.78.72 + 10 89.6.29.47.59.28.75.78.72.98 11 89.6.29.47.59.28.75.78.72.98.87 + 12 89.6.29.47.59.28.75.78.72.98.87.73 + 13 89.6.29.47.59.28.75.78.72.98.87.73.96 + 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 + 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 + 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 0 {} 0 {} 0 {} + 0 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 96 + 2 96.97 3 96.97.84 4 96.97.84.86 5 96.97.84.86.32 + 6 96.97.84.86.32.25 7 96.97.84.86.32.25.89 8 96.97.84.86.32.25.89.29 + 9 96.97.84.86.32.25.89.29.9 10 96.97.84.86.32.25.89.29.9.21 + 11 96.97.84.86.32.25.89.29.9.21.12 12 96.97.84.86.32.25.89.29.9.21.12.88 + 13 96.97.84.86.32.25.89.29.9.21.12.88.55 + 14 96.97.84.86.32.25.89.29.9.21.12.88.55.70 + 15 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 0 {} 0 {} 0 {} 0 {} + 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 38 + 2 38.46 3 38.46.23 4 38.46.23.61 5 38.46.23.61.3 6 38.46.23.61.3.1 + 7 38.46.23.61.3.1.76 8 38.46.23.61.3.1.76.63 9 38.46.23.61.3.1.76.63.73 + 10 38.46.23.61.3.1.76.63.73.65 11 38.46.23.61.3.1.76.63.73.65.20 + 12 38.46.23.61.3.1.76.63.73.65.20.8 + 13 38.46.23.61.3.1.76.63.73.65.20.8.77 + 14 38.46.23.61.3.1.76.63.73.65.20.8.77.19 + 15 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 0 {} 0 {} 0 {} 0 {} + 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 39 + 2 39.54 3 39.54.16 4 39.54.16.85 5 39.54.16.85.22 + 6 39.54.16.85.22.40 7 39.54.16.85.22.40.4 8 39.54.16.85.22.40.4.87 + 9 39.54.16.85.22.40.4.87.65 10 39.54.16.85.22.40.4.87.65.5 + 11 39.54.16.85.22.40.4.87.65.5.31 12 39.54.16.85.22.40.4.87.65.5.31.49 + 13 39.54.16.85.22.40.4.87.65.5.31.49.2 + 14 39.54.16.85.22.40.4.87.65.5.31.49.2.26 + 15 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 0 {} 0 {} 0 {} 0 {} + 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 0 {} 0 {} 0 {} 0 {} 1 91 + 2 91.8 3 91.8.65 4 91.8.65.85 5 91.8.65.85.55 6 91.8.65.85.55.56 + 7 91.8.65.85.55.56.42 8 91.8.65.85.55.56.42.80 + 9 91.8.65.85.55.56.42.80.58 10 91.8.65.85.55.56.42.80.58.11 + 11 91.8.65.85.55.56.42.80.58.11.95 12 91.8.65.85.55.56.42.80.58.11.95.90 + 13 91.8.65.85.55.56.42.80.58.11.95.90.85 + 14 91.8.65.85.55.56.42.80.58.11.95.90.85.47 + 15 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 0 {} 0 {} 0 {} 0 {} + 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {}} do_execsql_test 1.6.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 74 74 74 74 99 99 99 33 89 89 96 96 96 68 68 68 91 91 91 99 99 99 97 78 78 97 97 97 67 93 93 93 84 77 23 93 93 93 65 47 86 86 86 91 91 91 85 85 85 59 59 56 56 91 91 91 90 90 55 89 89 89 47 56 56 56 56 56 75 75 89 98 98 98 81 94 94 94 78 78 78 53 63 63 87 87 87 84 84 84 72 61 73 95 95 95 65 96 98 98 98 74 74 74 65 73 73 73 87 87 87 41 20 31 31 31 95 95 95 79 88 88 88 34 49 49 90 90 96 96 96 75 77 77 77 44 85 85 85 74 74 70 70 59 39 39 47 80 90 90 90 58 58 72 72 72 72 93 93 93 81 81 81 37 37 37 14 62 91 91 91 91 91 34 36 99 99 99 95 95 69 58 52 84 84 84 84 84 39 44 58 58 58 38 83 83 83 82} +} {{} {} 89 89 96 96 96 68 68 68 91 91 91 99 99 + 99 97 78 78 97 97 97 67 93 93 93 84 77 23 93 + 93 93 65 47 86 86 86 91 91 91 85 85 85 59 59 + 56 56 91 91 91 90 90 55 89 89 89 47 56 56 56 + 56 56 75 75 89 98 98 98 81 94 94 94 78 78 78 + 53 63 63 87 87 87 84 84 84 72 61 73 95 95 95 + 65 96 98 98 98 74 74 74 65 73 73 73 87 87 87 + 41 20 31 31 31 95 95 95 79 88 88 88 34 49 49 + 90 90 96 96 96 75 77 77 77 44 85 85 85 74 74 + 70 70 59 39 39 47 80 90 90 90 58 58 72 72 72 + 72 93 93 93 81 81 81 37 37 37 14 62 91 91 91 + 91 91 34 36 99 99 99 95 95 69 58 52 84 84 84 + 84 84 39 44 58 58 58 38 83 83 83} do_execsql_test 1.6.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 0 0 41 23 23 23 26 2 2 2 81 59 38 38 38 39 39 46 6 6 6 27 27 27 46 54 8 8 8 29 29 77 23 16 16 16 16 35 35 7 7 7 61 61 61 24 24 24 43 12 12 12 3 3 3 22 22 15 15 15 25 25 1 1 1 40 40 16 16 16 36 36 76 76 4 4 4 30 30 30 29 29 29 2 2 2 37 37 72 41 9 9 9 61 65 13 13 13 58 1 1 1 21 35 5 5 5 11 11 41 12 8 8 8 20 15 15 15 22 22 73 34 8 8 8 11 34 34 59 59 55 55 55 44 2 2 2 7 57 29 29 29 19 19 19 26 26 26 47 36 36 36 9 9 9 66 33 33 33 64 64 9 9 9 13 12 12 12 14 36 36 33 15 15 15 34 3 3 3 58 52 30 30 30 10 10 10 21 21 21 39 30 30 30 34 27 27 17} +} {{} {} 89 81 81 59 38 38 38 39 39 46 6 6 6 27 + 27 27 46 54 8 8 8 29 29 77 23 16 16 16 16 35 + 35 7 7 7 61 61 61 24 24 24 43 12 12 12 3 3 + 3 22 22 15 15 15 25 25 1 1 1 40 40 16 16 16 + 36 36 76 76 4 4 4 30 30 30 29 29 29 2 2 2 + 37 37 72 41 9 9 9 61 65 13 13 13 58 1 1 1 + 21 35 5 5 5 11 11 41 12 8 8 8 20 15 15 15 + 22 22 73 34 8 8 8 11 34 34 59 59 55 55 55 44 + 2 2 2 7 57 29 29 29 19 19 19 26 26 26 47 36 + 36 36 9 9 9 66 33 33 33 64 64 9 9 9 13 12 + 12 12 14 36 36 33 15 15 15 34 3 3 3 58 52 30 + 30 30 10 10 10 21 21 21 39 30 30 30 34 27 27} do_execsql_test 1.6.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.6.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.6.3.3 { SELECT row_number() OVER ( ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.6.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.6.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.6.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.6.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.6.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.6.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.6.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.6.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.6.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.6.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.6.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.6.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.6.6.1 { SELECT @@ -2777,7 +10889,33 @@ do_execsql_test 1.6.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.6.7.1 { @@ -2785,11 +10923,13 @@ do_test 1.6.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2800,11 +10940,13 @@ do_test 1.6.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2815,11 +10957,13 @@ do_test 1.6.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2830,11 +10974,13 @@ do_test 1.6.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2845,11 +10991,13 @@ do_test 1.6.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2860,11 +11008,13 @@ do_test 1.6.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2875,11 +11025,13 @@ do_test 1.6.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2890,11 +11042,13 @@ do_test 1.6.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2905,11 +11059,13 @@ do_test 1.6.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2920,11 +11076,13 @@ do_test 1.6.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2935,11 +11093,13 @@ do_test 1.6.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2950,11 +11110,13 @@ do_test 1.6.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2965,11 +11127,13 @@ do_test 1.6.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2980,11 +11144,13 @@ do_test 1.6.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -2995,11 +11161,13 @@ do_test 1.6.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3010,11 +11178,13 @@ do_test 1.6.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3025,11 +11195,13 @@ do_test 1.6.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3040,11 +11212,13 @@ do_test 1.6.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3055,250 +11229,1094 @@ do_test 1.6.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.6.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 1 76 44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216} +} {{} {} 99 92 108 72 52 83 55 79 109 65 26 120 + 119 50 70 103 80 124 36 96 59 124 116 110 57 51 + 52 130 103 74 87 48 128 117 105 136 131 71 133 92 + 109 63 84 109 57 146 78 147 113 74 88 150 87 110 + 65 121 106 110 124 85 145 107 161 171 150 156 80 + 171 120 109 158 114 111 136 147 87 173 124 168 173 + 162 132 101 154 167 190 161 110 156 195 198 102 123 + 177 169 140 111 180 119 160 197 152 124 121 134 146 + 147 132 213 141 193 200 210 157 132 136 175 161 218 + 188 226 191 187 208 211 179 138 144 223 196 214 170 + 212 202 163 184 172 173 195 229 240 187 210 200 163 + 227 228 223 191 252 235 225 243 172 187 202 179 179 + 182 231 261 207 263 206 189 209 212 276 181 274 249 + 239 234 213 234 269 196 271 221 210 229 235 250 223 + 232 229 279 224 280} do_execsql_test 1.6.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 1 147 106 109 168 134 218 191 212 229 240 213 234 {} {} 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 {} {} 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 {} {} 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 {} {} 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 {} {} 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 {} {} 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 {} {} 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 {} {} 52 83 103 36 88 171 158 156 198 121 210 132 210 239 {} {} 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276} +} {{} {} 147 106 109 168 134 218 191 212 229 240 213 + 234 {} {} 92 109 105 136 146 65 156 132 154 102 + 123 119 160 152 146 147 136 243 261 {} {} 79 63 + 84 78 120 87 162 124 141 138 227 228 179 231 {} + {} 124 57 130 92 57 110 114 136 147 167 110 180 + 193 191 252 187 179 206 181 {} {} 80 116 117 71 + 80 171 173 177 157 161 179 214 225 182 209 269 271 + {} {} 103 74 131 133 113 74 87 145 190 161 169 + 140 111 132 213 187 208 223 235 {} {} 108 65 26 + 70 51 52 128 109 121 124 85 107 150 195 226 172 + 173 187 223 {} {} 119 50 124 96 110 87 48 110 173 + 124 197 211 144 196 195 200 202 224 {} {} 52 83 + 103 36 88 171 158 156 198 121 210 132 210 239 {} + {} 99 72 55 120 59 109 150 161 111 101 200 175 + 188 170 202 163 184 163 172 276} do_execsql_test 1.6.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 1 65 102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105} +} {{} {} 65 102 87 138 57 181 80 111 26 48 144 207 + 36 121 132 101 163 172 196 119 136 63 124 179 110 + 179 182 74 132 189 51 52 85 216 163 134 123 210 + 78 141 57 187 71 87 172 173 50 224 88 59 111 170 + 109 213 223 146 147 84 114 191 206 221 157 161 209 + 229 74 140 107 187 207 212 124 202 52 232 55 184 + 229 106 132 152 120 92 110 179 235 65 70 87 110 + 195 200 175 234 160 234 136 80 113 187 109 121 124 + 196 156 210 239 250 72 109 188 202 191 105 154 79 + 231 147 225 103 161 169 223 96 83 249 212 162 227 + 228 167 180 193 117 177 214 145 208 235 150 110 211 + 103 158 200 168 229 92 156 243 280 279 116 173 269 + 271 131 133 223 128 173 197 210 99 150 161 147 218 + 240 109 136 146 261 263 124 130 252 171 190 213 274 + 108 195 226 119 124 171 198} do_execsql_test 1.6.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 1 196 134 109 213 223 106 234 191 212 168 229 147 {} {} 65 102 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 {} {} 11 87 138 63 124 179 78 141 84 120 234 79 231 162 227 {} {} 57 181 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 {} {} 80 182 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 {} {} 111 206 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 {} {} 26 51 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 {} {} 48 144 207 216 50 224 124 202 87 110 195 200 196 96 110 211 173 197 {} {} 36 121 132 88 52 232 156 210 239 250 83 103 158 210 {} {} 101 163 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105} +} {{} {} 196 134 109 213 223 106 234 191 212 168 229 + 147 {} {} 65 102 119 136 123 210 146 147 132 152 + 160 105 154 92 156 243 109 136 146 {} {} 87 138 + 63 124 179 78 141 84 120 234 79 231 162 227 {} {} + 57 181 110 179 57 187 114 191 206 221 92 110 136 + 147 167 180 193 279 124 {} {} 80 182 71 157 161 + 209 229 179 235 80 225 117 177 214 116 173 269 {} + {} 111 74 132 189 87 74 140 113 187 103 161 169 + 145 208 235 131 133 223 190 {} {} 26 51 52 85 172 + 173 107 187 207 212 65 70 109 121 124 223 150 128 + 108 {} {} 48 144 207 216 50 224 124 202 87 110 + 195 200 196 96 110 211 173 197 {} {} 36 121 132 + 88 52 232 156 210 239 250 83 103 158 210 {} {} + 101 163 172 163 59 111 170 55 184 229 175 72 109 + 188 202 249 200 99 150 161} do_execsql_test 1.6.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276} +} {{} {} 147 106 109 168 134 218 191 212 229 240 213 + 234 196 223 92 109 105 136 146 65 156 132 154 102 + 123 119 160 152 146 147 136 243 261 263 210 79 63 + 84 78 120 87 162 124 141 138 227 228 179 231 234 + 280 124 57 130 92 57 110 114 136 147 167 110 180 + 193 191 252 187 179 206 181 221 279 80 116 117 71 + 80 171 173 177 157 161 179 214 225 182 209 269 271 + 235 229 103 74 131 133 113 74 87 145 190 161 169 + 140 111 132 213 187 208 223 235 189 274 108 65 26 + 70 51 52 128 109 121 124 85 107 150 195 226 172 + 173 187 223 207 212 119 50 124 96 110 87 48 110 + 173 124 197 211 144 196 195 200 202 224 216 207 52 + 83 103 36 88 171 158 156 198 121 210 132 210 239 + 250 232 99 72 55 120 59 109 150 161 111 101 200 + 175 188 170 202 163 184 163 172 276} do_execsql_test 1.6.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} {} {} 1 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 91 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} 0 0 0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27} +} {{} {} 89 89 89 81 96 59 38 68 39 62 91 46 6 + 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 + 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 + 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 + 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 + 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 + 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 + 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 + 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 + 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 + 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 + 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 + 39 44 58 30 38 34 83} do_execsql_test 1.6.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} 0 0 0 90 40 30 80 20 90 60 70 80 90 {} {} 41 41 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 {} {} 2 2 2 62 12 32 22 42 2 72 12 22 2 72 72 {} {} 23 23 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 {} {} 74 74 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 {} {} 65 65 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 {} {} 26 26 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 {} {} 97 97 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 {} {} 38 38 38 68 78 8 28 98 78 58 98 8 88 8 {} {} 99 99 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {{} {} 90 90 90 40 30 80 20 90 60 70 80 90 {} + {} 81 81 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 {} {} 62 62 62 12 32 22 42 2 72 + 12 22 2 72 72 {} {} 93 93 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 {} {} 54 54 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 {} + {} 65 65 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 {} {} 96 96 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 {} {} 97 97 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 {} + {} 38 38 38 68 78 8 28 98 78 58 98 8 88 8 {} + {} 89 89 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.6.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 0 0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98} +} {{} {} 1 1 1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 + 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 + 16 16 17 19 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 + 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 + 39 39 39 40 41 41 42 43 43 44 44 46 46 47 47 + 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 + 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 + 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 + 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 + 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 + 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 + 95 96 96 96 97 97} do_execsql_test 1.6.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 0 0 10 20 30 30 30 40 50 60 70 80 {} {} 1 1 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 {} {} 2 2 2 2 2 12 12 12 22 22 32 42 52 62 62 {} {} 3 3 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 {} {} 4 4 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 {} {} 5 5 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 {} {} 6 6 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 {} {} 7 7 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 {} {} 8 8 8 8 8 28 38 38 58 58 58 58 68 78 {} {} 9 9 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89} +} {{} {} 10 10 10 20 30 30 30 40 50 60 70 80 {} + {} 1 1 1 1 11 11 21 21 31 31 41 41 51 61 61 + 81 81 81 91 {} {} 2 2 2 2 12 12 12 22 22 32 + 42 52 62 62 {} {} 3 3 3 3 13 13 23 23 33 33 + 33 33 43 43 53 63 73 73 73 {} {} 4 4 4 14 24 + 34 34 34 34 44 44 54 64 74 74 74 84 {} {} 5 5 + 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 + 85 85 {} {} 6 6 6 16 16 16 26 26 36 36 36 36 + 46 46 56 56 56 66 76 {} {} 7 7 7 7 7 17 27 + 27 37 37 47 47 47 47 57 67 77 77 {} {} 8 8 8 + 8 8 28 38 38 58 58 58 58 68 78 {} {} 9 9 9 + 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89} do_execsql_test 1.6.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 0 0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {{} {} 90 90 90 40 30 80 20 90 60 70 80 90 30 + 50 10 30 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 81 91 91 21 62 12 32 22 42 2 72 + 12 22 2 72 72 12 62 52 82 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 33 3 33 83 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 + 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 85 75 15 95 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 + 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 + 58 58 38 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.6.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.6.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.6.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.6.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.6.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.6.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.6.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} 0 0.74 0.74.41 74.41.74 41.74.23 74.23.99 23.99.26 99.26.33 26.33.2 33.2.89 2.89.81 89.81.96 81.96.59 96.59.38 59.38.68 38.68.39 68.39.62 39.62.91 62.91.46 91.46.6 46.6.99 6.99.97 99.97.27 97.27.46 27.46.78 46.78.54 78.54.97 54.97.8 97.8.67 8.67.29 67.29.93 29.93.84 93.84.77 84.77.23 77.23.16 23.16.16 16.16.93 16.93.65 93.65.35 65.35.47 35.47.7 47.7.86 7.86.74 86.74.61 74.61.91 61.91.85 91.85.24 85.24.85 24.85.43 85.43.59 43.59.12 59.12.32 12.32.56 32.56.3 56.3.91 3.91.22 91.22.90 22.90.55 90.55.15 55.15.28 15.28.89 28.89.25 89.25.47 25.47.1 47.1.56 1.56.40 56.40.43 40.43.56 43.56.16 56.16.75 16.75.36 75.36.89 36.89.98 89.98.76 98.76.81 76.81.4 81.4.94 4.94.42 94.42.30 42.30.78 30.78.33 78.33.29 33.29.53 29.53.63 53.63.2 63.2.87 2.87.37 87.37.80 37.80.84 80.84.72 84.72.41 72.41.9 41.9.61 9.61.73 61.73.95 73.95.65 95.65.13 65.13.58 13.58.96 58.96.98 96.98.1 98.1.21 1.21.74 21.74.65 74.65.35 65.35.5 35.5.73 5.73.11 73.11.51 11.51.87 51.87.41 87.41.12 41.12.8 12.8.20 8.20.31 20.31.31 31.31.15 31.15.95 15.95.22 95.22.73 22.73.79 73.79.88 79.88.34 88.34.8 34.8.11 8.11.49 11.49.34 49.34.90 34.90.59 90.59.96 59.96.60 96.60.55 60.55.75 55.75.77 75.77.44 77.44.2 44.2.7 2.7.85 7.85.57 85.57.74 57.74.29 74.29.70 29.70.59 70.59.19 59.19.39 19.39.26 39.26.26 26.26.47 26.47.80 47.80.90 80.90.36 90.36.58 36.58.47 58.47.9 47.9.72 9.72.72 72.72.66 72.66.33 66.33.93 33.93.75 93.75.64 75.64.81 64.81.9 81.9.23 9.23.37 23.37.13 37.13.12 13.12.14 12.14.62 14.62.91 62.91.36 91.36.91 36.91.33 91.33.15 33.15.34 15.34.36 34.36.99 36.99.3 99.3.95 3.95.69 95.69.58 69.58.52 58.52.30 52.30.50 30.50.84 50.84.10 84.10.84 10.84.33 84.33.21 33.21.39 21.39.44 39.44.58 44.58.30 58.30.38 30.38.34 38.34.83 34.83.27 83.27.82 27.82.17} +} {{} {} 89 89.81 89.81.96 81.96.59 96.59.38 59.38.68 38.68.39 + 68.39.62 39.62.91 62.91.46 91.46.6 46.6.99 6.99.97 99.97.27 + 97.27.46 27.46.78 46.78.54 78.54.97 54.97.8 97.8.67 8.67.29 + 67.29.93 29.93.84 93.84.77 84.77.23 77.23.16 23.16.16 16.16.93 + 16.93.65 93.65.35 65.35.47 35.47.7 47.7.86 7.86.74 86.74.61 + 74.61.91 61.91.85 91.85.24 85.24.85 24.85.43 85.43.59 43.59.12 + 59.12.32 12.32.56 32.56.3 56.3.91 3.91.22 91.22.90 22.90.55 + 90.55.15 55.15.28 15.28.89 28.89.25 89.25.47 25.47.1 47.1.56 + 1.56.40 56.40.43 40.43.56 43.56.16 56.16.75 16.75.36 75.36.89 + 36.89.98 89.98.76 98.76.81 76.81.4 81.4.94 4.94.42 94.42.30 + 42.30.78 30.78.33 78.33.29 33.29.53 29.53.63 53.63.2 63.2.87 + 2.87.37 87.37.80 37.80.84 80.84.72 84.72.41 72.41.9 41.9.61 + 9.61.73 61.73.95 73.95.65 95.65.13 65.13.58 13.58.96 58.96.98 + 96.98.1 98.1.21 1.21.74 21.74.65 74.65.35 65.35.5 35.5.73 + 5.73.11 73.11.51 11.51.87 51.87.41 87.41.12 41.12.8 12.8.20 + 8.20.31 20.31.31 31.31.15 31.15.95 15.95.22 95.22.73 22.73.79 + 73.79.88 79.88.34 88.34.8 34.8.11 8.11.49 11.49.34 49.34.90 + 34.90.59 90.59.96 59.96.60 96.60.55 60.55.75 55.75.77 75.77.44 + 77.44.2 44.2.7 2.7.85 7.85.57 85.57.74 57.74.29 74.29.70 + 29.70.59 70.59.19 59.19.39 19.39.26 39.26.26 26.26.47 26.47.80 + 47.80.90 80.90.36 90.36.58 36.58.47 58.47.9 47.9.72 9.72.72 + 72.72.66 72.66.33 66.33.93 33.93.75 93.75.64 75.64.81 64.81.9 + 81.9.23 9.23.37 23.37.13 37.13.12 13.12.14 12.14.62 14.62.91 + 62.91.36 91.36.91 36.91.33 91.33.15 33.15.34 15.34.36 34.36.99 + 36.99.3 99.3.95 3.95.69 95.69.58 69.58.52 58.52.30 52.30.50 + 30.50.84 50.84.10 84.10.84 10.84.33 84.33.21 33.21.39 21.39.44 + 39.44.58 44.58.30 58.30.38 30.38.34 38.34.83 34.83.27 83.27.82} do_execsql_test 1.6.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} 0 0.90 0.90.40 90.40.30 40.30.80 30.80.20 80.20.90 20.90.60 90.60.70 60.70.80 70.80.90 80.90.30 90.30.50 {} {} 41 41.81 41.81.91 81.91.61 91.61.91 61.91.91 91.91.1 91.1.81 1.81.41 81.41.61 41.61.1 61.1.21 1.21.11 21.11.51 11.51.41 51.41.31 41.31.31 31.31.11 31.11.81 11.81.91 {} {} 2 2.62 2.62.12 62.12.32 12.32.22 32.22.42 22.42.2 42.2.72 2.72.12 72.12.22 12.22.2 22.2.72 2.72.72 72.72.12 72.12.62 {} {} 23 23.33 23.33.93 33.93.23 93.23.93 23.93.43 93.43.3 43.3.43 3.43.33 43.33.53 33.53.63 53.63.73 63.73.13 73.13.73 13.73.73 73.73.33 73.33.93 33.93.23 93.23.13 23.13.33 13.33.3 {} {} 74 74.74 74.74.54 74.54.84 54.84.74 84.74.24 74.24.4 24.4.94 4.94.84 94.84.74 84.74.34 74.34.34 34.34.44 34.44.74 44.74.64 74.64.14 64.14.34 14.34.84 34.84.84 {} {} 65 65.35 65.35.85 35.85.85 85.85.55 85.55.15 55.15.25 15.25.75 25.75.95 75.95.65 95.65.65 65.65.35 65.35.5 35.5.15 5.15.95 15.95.55 95.55.75 55.75.85 75.85.75 85.75.15 {} {} 26 26.96 26.96.46 96.46.6 46.6.46 6.46.16 46.16.16 16.16.86 16.86.56 86.56.56 56.56.56 56.56.16 56.16.36 16.36.76 36.76.96 76.96.96 96.96.26 96.26.26 26.26.36 26.36.66 {} {} 97 97.27 97.27.97 27.97.67 97.67.77 67.77.47 77.47.7 47.7.47 7.47.87 47.87.37 87.37.87 37.87.77 87.77.7 77.7.57 7.57.47 57.47.47 47.47.37 47.37.27 {} {} 38 38.68 38.68.78 68.78.8 78.8.28 8.28.98 28.98.78 98.78.58 78.58.98 58.98.8 98.8.88 8.88.8 88.8.58 8.58.58 {} {} 99 99.89 99.89.59 89.59.39 59.39.99 39.99.29 99.29.59 29.59.89 59.89.89 89.89.29 89.29.9 29.9.79 9.79.49 79.49.59 49.59.29 59.29.59 29.59.19 59.19.39 19.39.9 39.9.9 9.9.99} +} {{} {} 90 90.40 90.40.30 40.30.80 30.80.20 80.20.90 20.90.60 + 90.60.70 60.70.80 70.80.90 80.90.30 90.30.50 {} {} 81 81.91 + 81.91.61 91.61.91 61.91.91 91.91.1 91.1.81 1.81.41 81.41.61 + 41.61.1 61.1.21 1.21.11 21.11.51 11.51.41 51.41.31 41.31.31 + 31.31.11 31.11.81 11.81.91 {} {} 62 62.12 62.12.32 12.32.22 + 32.22.42 22.42.2 42.2.72 2.72.12 72.12.22 12.22.2 22.2.72 + 2.72.72 72.72.12 72.12.62 {} {} 93 93.23 93.23.93 23.93.43 + 93.43.3 43.3.43 3.43.33 43.33.53 33.53.63 53.63.73 63.73.13 + 73.13.73 13.73.73 73.73.33 73.33.93 33.93.23 93.23.13 23.13.33 + 13.33.3 {} {} 54 54.84 54.84.74 84.74.24 74.24.4 24.4.94 + 4.94.84 94.84.74 84.74.34 74.34.34 34.34.44 34.44.74 44.74.64 + 74.64.14 64.14.34 14.34.84 34.84.84 {} {} 65 65.35 65.35.85 + 35.85.85 85.85.55 85.55.15 55.15.25 15.25.75 25.75.95 75.95.65 + 95.65.65 65.65.35 65.35.5 35.5.15 5.15.95 15.95.55 95.55.75 + 55.75.85 75.85.75 {} {} 96 96.46 96.46.6 46.6.46 6.46.16 + 46.16.16 16.16.86 16.86.56 86.56.56 56.56.56 56.56.16 56.16.36 + 16.36.76 36.76.96 76.96.96 96.96.26 96.26.26 26.26.36 26.36.66 + {} {} 97 97.27 97.27.97 27.97.67 97.67.77 67.77.47 77.47.7 + 47.7.47 7.47.87 47.87.37 87.37.87 37.87.77 87.77.7 77.7.57 + 7.57.47 57.47.47 47.47.37 47.37.27 {} {} 38 38.68 38.68.78 + 68.78.8 78.8.28 8.28.98 28.98.78 98.78.58 78.58.98 58.98.8 + 98.8.88 8.88.8 88.8.58 8.58.58 {} {} 89 89.59 89.59.39 + 59.39.99 39.99.29 99.29.59 29.59.89 59.89.89 89.89.29 89.29.9 + 29.9.79 9.79.49 79.49.59 49.59.29 59.29.59 29.59.19 59.19.39 + 19.39.9 39.9.9 9.9.99} do_execsql_test 1.6.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 0.1 0.1.1 1.1.2 1.2.2 2.2.2 2.2.3 2.3.3 3.3.4 3.4.5 4.5.5 5.5.6 5.6.7 6.7.7 7.7.7 7.7.8 7.8.8 8.8.8 8.8.9 8.9.9 9.9.9 9.9.10 9.10.11 10.11.11 11.11.12 11.12.12 12.12.12 12.12.13 12.13.13 13.13.14 13.14.15 14.15.15 15.15.15 15.15.16 15.16.16 16.16.16 16.16.17 16.17.19 17.19.20 19.20.21 20.21.21 21.21.22 21.22.22 22.22.23 22.23.23 23.23.23 23.23.24 23.24.25 24.25.26 25.26.26 26.26.26 26.26.27 26.27.27 27.27.28 27.28.29 28.29.29 29.29.29 29.29.30 29.30.30 30.30.30 30.30.31 30.31.31 31.31.32 31.32.33 32.33.33 33.33.33 33.33.33 33.33.33 33.33.34 33.34.34 34.34.34 34.34.34 34.34.35 34.35.35 35.35.36 35.36.36 36.36.36 36.36.36 36.36.37 36.37.37 37.37.38 37.38.38 38.38.39 38.39.39 39.39.39 39.39.40 39.40.41 40.41.41 41.41.41 41.41.42 41.42.43 42.43.43 43.43.44 43.44.44 44.44.46 44.46.46 46.46.47 46.47.47 47.47.47 47.47.47 47.47.49 47.49.50 49.50.51 50.51.52 51.52.53 52.53.54 53.54.55 54.55.55 55.55.56 55.56.56 56.56.56 56.56.57 56.57.58 57.58.58 58.58.58 58.58.58 58.58.59 58.59.59 59.59.59 59.59.59 59.59.60 59.60.61 60.61.61 61.61.62 61.62.62 62.62.63 62.63.64 63.64.65 64.65.65 65.65.65 65.65.66 65.66.67 66.67.68 67.68.69 68.69.70 69.70.72 70.72.72 72.72.72 72.72.73 72.73.73 73.73.73 73.73.74 73.74.74 74.74.74 74.74.74 74.74.74 74.74.75 74.75.75 75.75.75 75.75.76 75.76.77 76.77.77 77.77.78 77.78.78 78.78.79 78.79.80 79.80.80 80.80.81 80.81.81 81.81.81 81.81.82 81.82.83 82.83.84 83.84.84 84.84.84 84.84.84 84.84.85 84.85.85 85.85.85 85.85.86 85.86.87 86.87.87 87.87.88 87.88.89 88.89.89 89.89.89 89.89.90 89.90.90 90.90.90 90.90.91 90.91.91 91.91.91 91.91.91 91.91.91 91.91.93 91.93.93 93.93.93 93.93.94 93.94.95 94.95.95 95.95.95 95.95.96 95.96.96 96.96.96 96.96.97 96.97.97 97.97.98 97.98.98 98.98.99} +} {{} {} 1 1.1 1.1.2 1.2.2 2.2.3 2.3.3 3.3.4 3.4.5 4.5.6 + 5.6.7 6.7.7 7.7.7 7.7.8 7.8.8 8.8.8 8.8.9 8.9.9 9.9.9 + 9.9.10 9.10.11 10.11.11 11.11.12 11.12.12 12.12.12 12.12.13 + 12.13.13 13.13.14 13.14.15 14.15.15 15.15.15 15.15.16 15.16.16 + 16.16.16 16.16.17 16.17.19 17.19.20 19.20.21 20.21.21 21.21.22 + 21.22.22 22.22.23 22.23.23 23.23.24 23.24.25 24.25.26 25.26.26 + 26.26.27 26.27.27 27.27.28 27.28.29 28.29.29 29.29.29 29.29.30 + 29.30.30 30.30.30 30.30.31 30.31.31 31.31.32 31.32.33 32.33.33 + 33.33.33 33.33.33 33.33.34 33.34.34 34.34.34 34.34.34 34.34.35 + 34.35.35 35.35.36 35.36.36 36.36.36 36.36.36 36.36.37 36.37.37 + 37.37.38 37.38.38 38.38.39 38.39.39 39.39.39 39.39.40 39.40.41 + 40.41.41 41.41.42 41.42.43 42.43.43 43.43.44 43.44.44 44.44.46 + 44.46.46 46.46.47 46.47.47 47.47.47 47.47.47 47.47.49 47.49.50 + 49.50.51 50.51.52 51.52.53 52.53.54 53.54.55 54.55.55 55.55.56 + 55.56.56 56.56.56 56.56.57 56.57.58 57.58.58 58.58.58 58.58.58 + 58.58.59 58.59.59 59.59.59 59.59.59 59.59.60 59.60.61 60.61.61 + 61.61.62 61.62.62 62.62.63 62.63.64 63.64.65 64.65.65 65.65.65 + 65.65.66 65.66.67 66.67.68 67.68.69 68.69.70 69.70.72 70.72.72 + 72.72.72 72.72.73 72.73.73 73.73.73 73.73.74 73.74.74 74.74.74 + 74.74.75 74.75.75 75.75.75 75.75.76 75.76.77 76.77.77 77.77.78 + 77.78.78 78.78.79 78.79.80 79.80.80 80.80.81 80.81.81 81.81.81 + 81.81.82 81.82.83 82.83.84 83.84.84 84.84.84 84.84.84 84.84.85 + 84.85.85 85.85.85 85.85.86 85.86.87 86.87.87 87.87.88 87.88.89 + 88.89.89 89.89.89 89.89.90 89.90.90 90.90.90 90.90.91 90.91.91 + 91.91.91 91.91.91 91.91.91 91.91.93 91.93.93 93.93.93 93.93.94 + 93.94.95 94.95.95 95.95.95 95.95.96 95.96.96 96.96.96 96.96.97 + 96.97.97 97.97.98 97.98.98} do_execsql_test 1.6.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 0.10 0.10.20 10.20.30 20.30.30 30.30.30 30.30.40 30.40.50 40.50.60 50.60.70 60.70.80 70.80.80 80.80.90 {} {} 1 1.1 1.1.11 1.11.11 11.11.21 11.21.21 21.21.31 21.31.31 31.31.41 31.41.41 41.41.41 41.41.51 41.51.61 51.61.61 61.61.81 61.81.81 81.81.81 81.81.91 81.91.91 91.91.91 {} {} 2 2.2 2.2.2 2.2.12 2.12.12 12.12.12 12.12.22 12.22.22 22.22.32 22.32.42 32.42.52 42.52.62 52.62.62 62.62.72 62.72.72 {} {} 3 3.3 3.3.13 3.13.13 13.13.23 13.23.23 23.23.23 23.23.33 23.33.33 33.33.33 33.33.33 33.33.33 33.33.43 33.43.43 43.43.53 43.53.63 53.63.73 63.73.73 73.73.73 73.73.83 73.83.93 {} {} 4 4.14 4.14.24 14.24.34 24.34.34 34.34.34 34.34.34 34.34.44 34.44.44 44.44.54 44.54.64 54.64.74 64.74.74 74.74.74 74.74.74 74.74.74 74.74.84 74.84.84 84.84.84 {} {} 5 5.5 5.5.15 5.15.15 15.15.15 15.15.25 15.25.35 25.35.35 35.35.55 35.55.55 55.55.65 55.65.65 65.65.65 65.65.75 65.75.75 75.75.75 75.75.85 75.85.85 85.85.85 85.85.95 {} {} 6 6.16 6.16.16 16.16.16 16.16.26 16.26.26 26.26.26 26.26.36 26.36.36 36.36.36 36.36.36 36.36.46 36.46.46 46.46.56 46.56.56 56.56.56 56.56.66 56.66.76 66.76.86 76.86.96 {} {} 7 7.7 7.7.7 7.7.17 7.17.27 17.27.27 27.27.37 27.37.37 37.37.47 37.47.47 47.47.47 47.47.47 47.47.57 47.57.67 57.67.77 67.77.77 77.77.87 77.87.87 {} {} 8 8.8 8.8.8 8.8.28 8.28.38 28.38.38 38.38.58 38.58.58 58.58.58 58.58.58 58.58.68 58.68.78 68.78.78 78.78.88 {} {} 9 9.9 9.9.9 9.9.19 9.19.29 19.29.29 29.29.29 29.29.39 29.39.39 39.39.39 39.39.49 39.49.59 49.59.59 59.59.59 59.59.59 59.59.69 59.69.79 69.79.89 79.89.89 89.89.89 89.89.99} +} {{} {} 10 10.20 10.20.30 20.30.30 30.30.30 30.30.40 30.40.50 + 40.50.60 50.60.70 60.70.80 70.80.80 80.80.90 {} {} 1 1.1 + 1.1.11 1.11.11 11.11.21 11.21.21 21.21.31 21.31.31 31.31.41 + 31.41.41 41.41.51 41.51.61 51.61.61 61.61.81 61.81.81 81.81.81 + 81.81.91 81.91.91 91.91.91 {} {} 2 2.2 2.2.12 2.12.12 + 12.12.12 12.12.22 12.22.22 22.22.32 22.32.42 32.42.52 42.52.62 + 52.62.62 62.62.72 62.72.72 {} {} 3 3.3 3.3.13 3.13.13 + 13.13.23 13.23.23 23.23.33 23.33.33 33.33.33 33.33.33 33.33.43 + 33.43.43 43.43.53 43.53.63 53.63.73 63.73.73 73.73.73 73.73.83 + 73.83.93 {} {} 4 4.14 4.14.24 14.24.34 24.34.34 34.34.34 + 34.34.34 34.34.44 34.44.44 44.44.54 44.54.64 54.64.74 64.74.74 + 74.74.74 74.74.84 74.84.84 84.84.84 {} {} 5 5.15 5.15.15 + 15.15.15 15.15.25 15.25.35 25.35.35 35.35.55 35.55.55 55.55.65 + 55.65.65 65.65.65 65.65.75 65.75.75 75.75.75 75.75.85 75.85.85 + 85.85.85 85.85.95 {} {} 6 6.16 6.16.16 16.16.16 16.16.26 + 16.26.26 26.26.36 26.36.36 36.36.36 36.36.36 36.36.46 36.46.46 + 46.46.56 46.56.56 56.56.56 56.56.66 56.66.76 66.76.86 76.86.96 + {} {} 7 7.7 7.7.7 7.7.17 7.17.27 17.27.27 27.27.37 + 27.37.37 37.37.47 37.47.47 47.47.47 47.47.47 47.47.57 47.57.67 + 57.67.77 67.77.77 77.77.87 77.87.87 {} {} 8 8.8 8.8.8 + 8.8.28 8.28.38 28.38.38 38.38.58 38.58.58 58.58.58 58.58.58 + 58.58.68 58.68.78 68.78.78 78.78.88 {} {} 9 9.9 9.9.9 + 9.9.19 9.19.29 19.29.29 29.29.29 29.29.39 29.39.39 39.39.39 + 39.39.49 39.49.59 49.59.59 59.59.59 59.59.59 59.59.69 59.69.79 + 69.79.89 79.89.89 89.89.89} do_execsql_test 1.6.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2 -} {{} {} 0 0.90 0.90.40 90.40.30 40.30.80 30.80.20 80.20.90 20.90.60 90.60.70 60.70.80 70.80.90 80.90.30 90.30.50 30.50.10 50.10.30 10.30.41 30.41.81 41.81.91 81.91.61 91.61.91 61.91.91 91.91.1 91.1.81 1.81.41 81.41.61 41.61.1 61.1.21 1.21.11 21.11.51 11.51.41 51.41.31 41.31.31 31.31.11 31.11.81 11.81.91 81.91.91 91.91.21 91.21.2 21.2.62 2.62.12 62.12.32 12.32.22 32.22.42 22.42.2 42.2.72 2.72.12 72.12.22 12.22.2 22.2.72 2.72.72 72.72.12 72.12.62 12.62.52 62.52.82 52.82.23 82.23.33 23.33.93 33.93.23 93.23.93 23.93.43 93.43.3 43.3.43 3.43.33 43.33.53 33.53.63 53.63.73 63.73.13 73.13.73 13.73.73 73.73.33 73.33.93 33.93.23 93.23.13 23.13.33 13.33.3 33.3.33 3.33.83 33.83.74 83.74.74 74.74.54 74.54.84 54.84.74 84.74.24 74.24.4 24.4.94 4.94.84 94.84.74 84.74.34 74.34.34 34.34.44 34.44.74 44.74.64 74.64.14 64.14.34 14.34.84 34.84.84 84.84.44 84.44.34 44.34.65 34.65.35 65.35.85 35.85.85 85.85.55 85.55.15 55.15.25 15.25.75 25.75.95 75.95.65 95.65.65 65.65.35 65.35.5 35.5.15 5.15.95 15.95.55 95.55.75 55.75.85 75.85.75 85.75.15 75.15.95 15.95.5 95.5.26 5.26.96 26.96.46 96.46.6 46.6.46 6.46.16 46.16.16 16.16.86 16.86.56 86.56.56 56.56.56 56.56.16 56.16.36 16.36.76 36.76.96 76.96.96 96.96.26 96.26.26 26.26.36 26.36.66 36.66.36 66.36.36 36.36.97 36.97.27 97.27.97 27.97.67 97.67.77 67.77.47 77.47.7 47.7.47 7.47.87 47.87.37 87.37.87 37.87.77 87.77.7 77.7.57 7.57.47 57.47.47 47.47.37 47.37.27 37.27.17 27.17.7 17.7.38 7.38.68 38.68.78 68.78.8 78.8.28 8.28.98 28.98.78 98.78.58 78.58.98 58.98.8 98.8.88 8.88.8 88.8.58 8.58.58 58.58.58 58.58.38 58.38.99 38.99.89 99.89.59 89.59.39 59.39.99 39.99.29 99.29.59 29.59.89 59.89.89 89.89.29 89.29.9 29.9.79 9.79.49 79.49.59 49.59.29 59.29.59 29.59.19 59.19.39 19.39.9 39.9.9 9.9.99} +} {{} {} 90 90.40 90.40.30 40.30.80 30.80.20 80.20.90 20.90.60 + 90.60.70 60.70.80 70.80.90 80.90.30 90.30.50 30.50.10 50.10.30 + 10.30.81 30.81.91 81.91.61 91.61.91 61.91.91 91.91.1 91.1.81 + 1.81.41 81.41.61 41.61.1 61.1.21 1.21.11 21.11.51 11.51.41 + 51.41.31 41.31.31 31.31.11 31.11.81 11.81.91 81.91.91 91.91.21 + 91.21.62 21.62.12 62.12.32 12.32.22 32.22.42 22.42.2 42.2.72 + 2.72.12 72.12.22 12.22.2 22.2.72 2.72.72 72.72.12 72.12.62 + 12.62.52 62.52.82 52.82.93 82.93.23 93.23.93 23.93.43 93.43.3 + 43.3.43 3.43.33 43.33.53 33.53.63 53.63.73 63.73.13 73.13.73 + 13.73.73 73.73.33 73.33.93 33.93.23 93.23.13 23.13.33 13.33.3 + 33.3.33 3.33.83 33.83.54 83.54.84 54.84.74 84.74.24 74.24.4 + 24.4.94 4.94.84 94.84.74 84.74.34 74.34.34 34.34.44 34.44.74 + 44.74.64 74.64.14 64.14.34 14.34.84 34.84.84 84.84.44 84.44.34 + 44.34.65 34.65.35 65.35.85 35.85.85 85.85.55 85.55.15 55.15.25 + 15.25.75 25.75.95 75.95.65 95.65.65 65.65.35 65.35.5 35.5.15 + 5.15.95 15.95.55 95.55.75 55.75.85 75.85.75 85.75.15 75.15.95 + 15.95.96 95.96.46 96.46.6 46.6.46 6.46.16 46.16.16 16.16.86 + 16.86.56 86.56.56 56.56.56 56.56.16 56.16.36 16.36.76 36.76.96 + 76.96.96 96.96.26 96.26.26 26.26.36 26.36.66 36.66.36 66.36.36 + 36.36.97 36.97.27 97.27.97 27.97.67 97.67.77 67.77.47 77.47.7 + 47.7.47 7.47.87 47.87.37 87.37.87 37.87.77 87.77.7 77.7.57 + 7.57.47 57.47.47 47.47.37 47.37.27 37.27.17 27.17.7 17.7.38 + 7.38.68 38.68.78 68.78.8 78.8.28 8.28.98 28.98.78 98.78.58 + 78.58.98 58.98.8 98.8.88 8.88.8 88.8.58 8.58.58 58.58.58 + 58.58.38 58.38.89 38.89.59 89.59.39 59.39.99 39.99.29 99.29.59 + 29.59.89 59.89.89 89.89.29 89.29.9 29.9.79 9.79.49 79.49.59 + 49.59.29 59.29.59 29.59.19 59.19.39 19.39.9 39.9.9 9.9.99} do_execsql_test 1.6.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.6.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.6.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.6.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.6.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) -} {0 {} 0 {} 1 {} 2 74 3 74 3 74.74 3 74 3 74.99 3 99 3 99.33 3 33 3 33.89 3 89 3 89.96 3 96 3 96.38 3 38 3 38.39 3 39 3 39.91 3 91 3 91.6 3 6 3 6.97 3 97 3 97.46 3 46 3 46.54 3 54 3 54.8 3 8 3 8.29 3 29 3 29.84 3 84 3 84.23 3 23 3 23.16 3 16 3 16.65 3 65 3 65.47 3 47 3 47.86 3 86 3 86.61 3 61 3 61.85 3 85 3 85.85 3 85 3 85.59 3 59 3 59.32 3 32 3 32.3 3 3 3 3.22 3 22 3 22.55 3 55 3 55.28 3 28 3 28.25 3 25 3 25.1 3 1 3 1.40 3 40 3 40.56 3 56 3 56.75 3 75 3 75.89 3 89 3 89.76 3 76 3 76.4 3 4 3 4.42 3 42 3 42.78 3 78 3 78.29 3 29 3 29.63 3 63 3 63.87 3 87 3 87.80 3 80 3 80.72 3 72 3 72.9 3 9 3 9.73 3 73 3 73.65 3 65 3 65.58 3 58 3 58.98 3 98 3 98.21 3 21 3 21.65 3 65 3 65.5 3 5 3 5.11 3 11 3 11.87 3 87 3 87.12 3 12 3 12.20 3 20 3 20.31 3 31 3 31.95 3 95 3 95.73 3 73 3 73.88 3 88 3 88.8 3 8 3 8.49 3 49 3 49.90 3 90 3 90.96 3 96 3 96.55 3 55 3 55.77 3 77 3 77.2 3 2 3 2.85 3 85 3 85.74 3 74 3 74.70 3 70 3 70.19 3 19 3 19.26 3 26 3 26.47 3 47 3 47.90 3 90 3 90.58 3 58 3 58.9 3 9 3 9.72 3 72 3 72.33 3 33 3 33.75 3 75 3 75.81 3 81 3 81.23 3 23 3 23.13 3 13 3 13.14 3 14 3 14.91 3 91 3 91.91 3 91 3 91.15 3 15 3 15.36 3 36 3 36.3 3 3 3 3.69 3 69 3 69.52 3 52 3 52.50 3 50 3 50.10 3 10 3 10.33 3 33 3 33.39 3 39 3 39.58 3 58 3 58.38 3 38 3 38.83 3 83 3 83.82 3 82} +} {0 {} 0 {} 1 89 2 89 3 89.96 3 96 3 96.38 3 38 3 38.39 + 3 39 3 39.91 3 91 3 91.6 3 6 3 6.97 3 97 3 97.46 3 46 + 3 46.54 3 54 3 54.8 3 8 3 8.29 3 29 3 29.84 3 84 3 84.23 + 3 23 3 23.16 3 16 3 16.65 3 65 3 65.47 3 47 3 47.86 3 86 + 3 86.61 3 61 3 61.85 3 85 3 85.85 3 85 3 85.59 3 59 3 59.32 + 3 32 3 32.3 3 3 3 3.22 3 22 3 22.55 3 55 3 55.28 3 28 + 3 28.25 3 25 3 25.1 3 1 3 1.40 3 40 3 40.56 3 56 3 56.75 + 3 75 3 75.89 3 89 3 89.76 3 76 3 76.4 3 4 3 4.42 3 42 + 3 42.78 3 78 3 78.29 3 29 3 29.63 3 63 3 63.87 3 87 3 87.80 + 3 80 3 80.72 3 72 3 72.9 3 9 3 9.73 3 73 3 73.65 3 65 + 3 65.58 3 58 3 58.98 3 98 3 98.21 3 21 3 21.65 3 65 3 65.5 + 3 5 3 5.11 3 11 3 11.87 3 87 3 87.12 3 12 3 12.20 3 20 + 3 20.31 3 31 3 31.95 3 95 3 95.73 3 73 3 73.88 3 88 3 88.8 + 3 8 3 8.49 3 49 3 49.90 3 90 3 90.96 3 96 3 96.55 3 55 + 3 55.77 3 77 3 77.2 3 2 3 2.85 3 85 3 85.74 3 74 3 74.70 + 3 70 3 70.19 3 19 3 19.26 3 26 3 26.47 3 47 3 47.90 3 90 + 3 90.58 3 58 3 58.9 3 9 3 9.72 3 72 3 72.33 3 33 3 33.75 + 3 75 3 75.81 3 81 3 81.23 3 23 3 23.13 3 13 3 13.14 3 14 + 3 14.91 3 91 3 91.91 3 91 3 91.15 3 15 3 15.36 3 36 3 36.3 + 3 3 3 3.69 3 69 3 69.52 3 52 3 52.50 3 50 3 50.10 3 10 + 3 10.33 3 33 3 33.39 3 39 3 39.58 3 58 3 58.38 3 38 3 38.83 + 3 83 3 83.82} do_execsql_test 1.6.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) -} {0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {}} +} {0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {}} do_execsql_test 1.6.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) -} {0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {}} +} {0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} + 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} + 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} + 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 {} 2 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {}} do_execsql_test 1.6.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) -} {0 {} 0 {} 1 89 2 89.6 3 89.6.29 3 6.29.47 3 29.47.59 3 47.59.28 3 59.28.75 3 28.75.78 3 75.78.72 3 78.72.98 3 72.98.87 3 98.87.73 3 87.73.96 3 73.96.74 3 96.74.90 3 74.90.75 3 90.75.91 3 75.91.69 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 74 2 74.96 3 74.96.97 3 96.97.84 3 97.84.86 3 84.86.32 3 86.32.25 3 32.25.89 3 25.89.29 3 89.29.9 3 29.9.21 3 9.21.12 3 21.12.88 3 12.88.55 3 88.55.70 3 55.70.58 3 70.58.81 3 58.81.91 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 74 2 74.38 3 74.38.46 3 38.46.23 3 46.23.61 3 23.61.3 3 61.3.1 3 3.1.76 3 1.76.63 3 76.63.73 3 63.73.65 3 73.65.20 3 65.20.8 3 20.8.77 3 8.77.19 3 77.19.9 3 19.9.23 3 9.23.15 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 99 2 99.39 3 99.39.54 3 39.54.16 3 54.16.85 3 16.85.22 3 85.22.40 3 22.40.4 3 40.4.87 3 4.87.65 3 87.65.5 3 65.5.31 3 5.31.49 3 31.49.2 3 49.2.26 3 2.26.72 3 26.72.13 3 72.13.36 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 33 2 33.91 3 33.91.8 3 91.8.65 3 8.65.85 3 65.85.55 3 85.55.56 3 55.56.42 3 56.42.80 3 42.80.58 3 80.58.11 3 58.11.95 3 11.95.90 3 95.90.85 3 90.85.47 3 85.47.33 3 47.33.14 3 33.14.3 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {}} +} {0 {} 0 {} 1 89 2 89.6 3 89.6.29 3 6.29.47 3 29.47.59 + 3 47.59.28 3 59.28.75 3 28.75.78 3 75.78.72 3 78.72.98 3 72.98.87 + 3 98.87.73 3 87.73.96 3 73.96.74 3 96.74.90 3 74.90.75 3 90.75.91 + 3 75.91.69 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} + 0 {} 1 96 2 96.97 3 96.97.84 3 97.84.86 3 84.86.32 3 86.32.25 + 3 32.25.89 3 25.89.29 3 89.29.9 3 29.9.21 3 9.21.12 3 21.12.88 + 3 12.88.55 3 88.55.70 3 55.70.58 3 70.58.81 3 58.81.91 0 {} + 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 38 + 2 38.46 3 38.46.23 3 46.23.61 3 23.61.3 3 61.3.1 3 3.1.76 + 3 1.76.63 3 76.63.73 3 63.73.65 3 73.65.20 3 65.20.8 3 20.8.77 + 3 8.77.19 3 77.19.9 3 19.9.23 3 9.23.15 0 {} 0 {} 1 {} 2 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 0 {} 0 {} 1 39 2 39.54 3 39.54.16 + 3 54.16.85 3 16.85.22 3 85.22.40 3 22.40.4 3 40.4.87 3 4.87.65 + 3 87.65.5 3 65.5.31 3 5.31.49 3 31.49.2 3 49.2.26 3 2.26.72 + 3 26.72.13 3 72.13.36 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 0 {} 0 {} 1 91 2 91.8 3 91.8.65 3 8.65.85 3 65.85.55 + 3 85.55.56 3 55.56.42 3 56.42.80 3 42.80.58 3 80.58.11 3 58.11.95 + 3 11.95.90 3 95.90.85 3 90.85.47 3 85.47.33 3 47.33.14 3 33.14.3 + 0 {} 0 {} 1 {} 2 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {}} do_execsql_test 1.7.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 74 74 74 74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {89 89 96 96 96 96 96 96 96 96 96 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99} do_execsql_test 1.7.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {89 81 81 59 38 38 38 38 38 38 6 6 6 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 6 6 6 6 6 3 3 3 3 3 3 3 3 3 3 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1} do_execsql_test 1.7.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.7.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.7.3.3 { SELECT row_number() OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.7.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.7.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.7.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.7.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.7.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.7.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.7.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.7.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.7.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.7.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.7.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.7.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.7.6.1 { SELECT @@ -3306,7 +12324,33 @@ do_execsql_test 1.7.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.7.7.1 { @@ -3314,11 +12358,13 @@ do_test 1.7.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3329,11 +12375,13 @@ do_test 1.7.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3344,11 +12392,13 @@ do_test 1.7.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3359,11 +12409,13 @@ do_test 1.7.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3374,11 +12426,13 @@ do_test 1.7.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3389,11 +12443,13 @@ do_test 1.7.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3404,11 +12460,13 @@ do_test 1.7.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3419,11 +12477,13 @@ do_test 1.7.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3434,11 +12494,13 @@ do_test 1.7.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3449,11 +12511,13 @@ do_test 1.7.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3464,11 +12528,13 @@ do_test 1.7.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3479,11 +12545,13 @@ do_test 1.7.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3494,11 +12562,13 @@ do_test 1.7.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3509,11 +12579,13 @@ do_test 1.7.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3524,11 +12596,13 @@ do_test 1.7.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3539,11 +12613,13 @@ do_test 1.7.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3554,11 +12630,13 @@ do_test 1.7.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3569,11 +12647,13 @@ do_test 1.7.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3584,250 +12664,1913 @@ do_test 1.7.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.7.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 76 44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206} +} {99 92 108 72 52 83 55 79 109 65 26 120 119 50 + 70 103 80 124 36 96 59 124 116 110 57 51 52 130 + 103 74 87 48 128 117 105 136 131 71 133 92 109 63 + 84 109 57 146 78 147 113 74 88 150 87 110 65 121 + 106 110 124 85 145 107 161 171 150 156 80 171 120 + 109 158 114 111 136 147 87 173 124 168 173 162 132 + 101 154 167 190 161 110 156 195 198 102 123 177 169 + 140 111 180 119 160 197 152 124 121 134 146 147 132 + 213 141 193 200 210 157 132 136 175 161 218 188 226 + 191 187 208 211 179 138 144 223 196 214 170 212 202 + 163 184 172 173 195 229 240 187 210 200 163 227 228 + 223 191 252 235 225 243 172 187 202 179 179 182 231 + 261 207 263 206 189 209 212 276 181 274 249 239 234 + 213 234 269 196 271 221 210 229 235 250 223 232 229 + 279 224 280 216 207} do_execsql_test 1.7.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.7.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 65 102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276} +} {65 102 87 138 57 181 80 111 26 48 144 207 36 121 + 132 101 163 172 196 119 136 63 124 179 110 179 182 + 74 132 189 51 52 85 216 163 134 123 210 78 141 57 + 187 71 87 172 173 50 224 88 59 111 170 109 213 + 223 146 147 84 114 191 206 221 157 161 209 229 74 + 140 107 187 207 212 124 202 52 232 55 184 229 106 + 132 152 120 92 110 179 235 65 70 87 110 195 200 + 175 234 160 234 136 80 113 187 109 121 124 196 156 + 210 239 250 72 109 188 202 191 105 154 79 231 147 + 225 103 161 169 223 96 83 249 212 162 227 228 167 + 180 193 117 177 214 145 208 235 150 110 211 103 158 + 200 168 229 92 156 243 280 279 116 173 269 271 131 + 133 223 128 173 197 210 99 150 161 147 218 240 109 + 136 146 261 263 124 130 252 171 190 213 274 108 195 + 226 119 124 171 198 120 276} do_execsql_test 1.7.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 196 134 109 213 223 106 234 191 212 168 229 147 218 240 65 102 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 11 87 138 63 124 179 78 141 84 120 234 79 231 162 227 228 280 57 181 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 80 182 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 111 206 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 26 51 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 48 144 207 216 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 36 121 132 88 52 232 156 210 239 250 83 103 158 210 171 198 101 163 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276} +} {196 134 109 213 223 106 234 191 212 168 229 147 218 + 240 65 102 119 136 123 210 146 147 132 152 160 105 + 154 92 156 243 109 136 146 261 263 87 138 63 124 + 179 78 141 84 120 234 79 231 162 227 228 280 57 + 181 110 179 57 187 114 191 206 221 92 110 136 147 + 167 180 193 279 124 130 252 80 182 71 157 161 209 + 229 179 235 80 225 117 177 214 116 173 269 271 171 + 111 74 132 189 87 74 140 113 187 103 161 169 145 + 208 235 131 133 223 190 213 274 26 51 52 85 172 + 173 107 187 207 212 65 70 109 121 124 223 150 128 + 108 195 226 48 144 207 216 50 224 124 202 87 110 + 195 200 196 96 110 211 173 197 119 124 36 121 132 + 88 52 232 156 210 239 250 83 103 158 210 171 198 + 101 163 172 163 59 111 170 55 184 229 175 72 109 + 188 202 249 200 99 150 161 120 276} do_execsql_test 1.7.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.7.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.7.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} 29 {} {} {} 46 62 62 {} {} 16 {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 {} 74 {} 27 {} 22 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} {} {} 23 {} 74 93 30 23 29 3 1 41 {} 65 33 2 98 86 89 25 76 {} 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33 99} +} {{} {} {} {} {} {} {} {} {} {} 39 {} {} {} {} + {} {} {} 91 {} {} {} {} {} 77 54 54 {} {} {} + {} 62 {} {} {} {} {} 23 {} {} {} 97 86 {} 59 + {} 84 {} {} 78 65 {} 16 90 81 {} 59 56 40 54 + {} 85 {} {} {} {} 38 {} 32 47 {} 74 35 47 98 + 96 {} 24 {} {} 29 12 46 36 53 {} 81 27 56 {} + {} 81 93 63 81 91 68 53 99 89 13 12 97 91 29 + 7 7 78 35 84 53 84 58 61 91 99 15 61 98 16 5 + 75 56 2 37 3 96 62 95 43 63 35 78 16 67 43 16 + 16 90 72 98 85 56 90 46 29 29 4 74 74 2 76 41 + 46 77 24 27 97 46 89 1 85 1 74 78 61 85 51 59 + 35 30 56 25 47 28 73 6 73 74 93 43 3 56 47 85 + 61 61 93 9 97 62} do_execsql_test 1.7.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 {} 21 {} {} {} {} 21 {} {} {} 21 {} {} {} {} {} {} 12 {} {} {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} 55 {} 15 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} {} {} 29 29 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 91 {} 11 {} {} {} {} + 11 {} {} {} {} {} {} {} {} {} 32 {} {} {} 32 + {} {} 12 {} {} {} {} {} {} {} 43 {} {} {} {} + {} {} {} {} {} {} {} 33 {} 43 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} 9 9 {} {} {}} do_execsql_test 1.7.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 10 11 11 11 11 11 12 12 12 12 12 13 13 13 14 14 14 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 19 19 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 25 25 25 25 26 26 27 27 28 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 31 31 31 32 32 33 33 33 33 33 33 33 34 34 34 35 35 35 35 35 35 36 36 36 36 36 36 36 36 36 36 36 37 37 37 38 38 38 38 38 39 39 39 39 39 39 40 40 40 41 41 41 41 42 42 42 43 43 43 43 43 43 43 43 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47} +} {{} 1 2 2 2 2 3 3 4 5 5 5 6 6 6 7 7 7 7 + 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 12 + 12 12 12 12 12 13 13 14 14 15 15 15 15 15 15 + 16 16 16 16 16 16 17 17 17 17 19 19 19 19 20 + 20 21 21 21 21 21 21 22 22 22 22 22 23 23 23 + 24 25 25 26 26 27 27 27 27 27 27 29 29 29 30 + 30 30 31 31 31 31 31 32 33 33 33 33 33 33 33 + 33 33 33 33 34 34 34 34 34 34 34 35 35 36 36 + 36 37 37 37 37 37 37 38 38 38 38 38 38 39 39 + 39 39 39 40 41 41 41 41 41 42 43 43 43 43 43 + 44 44 44 44 46 46 46 47 47 47 47 47 47 47 47 + 47 47 47 49 49 49 50 51 51 51 52 52 52 53 53 + 54 54 55 55} do_execsql_test 1.7.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} {} 31 30 {} {} {} 1 40 {} 50 11 81 42 40 {} 50 81 40 {} {} 50 {} 52 {} 41 81 {} 41 {} 2 30 2 81 82 53 {} 10 {} {} 81 {} 41 10 81 30 81 {} 3 3 23 {} 3 61 80 {} 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 20 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 40 {} {} {} 40 41 50 {} {} {} {} + 50 {} {} {} 41 {} 10 91 61 {} 30 {} 10 61 30 + {} {} 10 {} {} {} {} 1 {} 22 80 22 91 93 {} + {} 30 {} {} 91 {} 1 30 91 80 91 {} 43 {} 74 + 21 20 {} {} 74 21 21 2 74 33 81 21 64 64 2 21 + 93 62 14 14 3 91 11 24 55 93 93 62 90 91 55 3 + 24 14 24 91 55 15 72 60 72 61 61 34 43 43 43 + 61 12 4 15 15 51 51 12 23 12 12 25 41 25 13 + 94 12 70 12 84 32 84 94 70 33 12 12 32 41 91 + 70 22 33 84 80 31 75 84 53 75 80 84 80 53 53 + 53 22 44 63 42 95 31 63 44 44 31 90 74 52 63 + 31 63 1 42 90 90 95 3 42} do_execsql_test 1.7.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.7.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 81 + 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 + 81 81 81 81 81 62 62 62 62 62 62 62 62 62 62 + 62 62 62 62 62 62 93 93 93 93 93 93 93 93 93 + 93 93 93 93 93 93 93 93 93 93 93 93 54 54 54 + 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 + 54 65 65 65 65 65 65 65 65 65 65 65 65 65 65 + 65 65 65 65 65 65 65 96 96 96 96 96 96 96 96 + 96 96 96 96 96 96 96 96 96 96 96 96 96 97 97 + 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 + 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 + 38 38 38 38 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.7.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1} do_execsql_test 1.7.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9} +} {10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9} do_execsql_test 1.7.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90} do_execsql_test 1.7.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.7.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.7.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.7.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.7.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.7.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.7.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.7.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.7.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0.74 0.74.41 0.74.41.74 0.74.41.74.23 0.74.41.74.23.99 0.74.41.74.23.99.26 0.74.41.74.23.99.26.33 0.74.41.74.23.99.26.33.2 0.74.41.74.23.99.26.33.2.89 0.74.41.74.23.99.26.33.2.89.81 0.74.41.74.23.99.26.33.2.89.81.96 0.74.41.74.23.99.26.33.2.89.81.96.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5} +} {89 89.81 89.81.96 89.81.96.59 89.81.96.59.38 89.81.96.59.38.68 + 89.81.96.59.38.68.39 89.81.96.59.38.68.39.62 89.81.96.59.38.68.39.62.91 + 89.81.96.59.38.68.39.62.91.46 89.81.96.59.38.68.39.62.91.46.6 + 89.81.96.59.38.68.39.62.91.46.6.99 89.81.96.59.38.68.39.62.91.46.6.99.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7} do_execsql_test 1.7.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 0.90.40.30.80.20.90.60.70.80.90.30 0.90.40.30.80.20.90.60.70.80.90.30.50 0.90.40.30.80.20.90.60.70.80.90.30.50.10 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 41 41.81 41.81.91 41.81.91.61 41.81.91.61.91 41.81.91.61.91.91 41.81.91.61.91.91.1 41.81.91.61.91.91.1.81 41.81.91.61.91.91.1.81.41 41.81.91.61.91.91.1.81.41.61 41.81.91.61.91.91.1.81.41.61.1 41.81.91.61.91.91.1.81.41.61.1.21 41.81.91.61.91.91.1.81.41.61.1.21.11 41.81.91.61.91.91.1.81.41.61.1.21.11.51 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 2 2.62 2.62.12 2.62.12.32 2.62.12.32.22 2.62.12.32.22.42 2.62.12.32.22.42.2 2.62.12.32.22.42.2.72 2.62.12.32.22.42.2.72.12 2.62.12.32.22.42.2.72.12.22 2.62.12.32.22.42.2.72.12.22.2 2.62.12.32.22.42.2.72.12.22.2.72 2.62.12.32.22.42.2.72.12.22.2.72.72 2.62.12.32.22.42.2.72.12.22.2.72.72.12 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 23 23.33 23.33.93 23.33.93.23 23.33.93.23.93 23.33.93.23.93.43 23.33.93.23.93.43.3 23.33.93.23.93.43.3.43 23.33.93.23.93.43.3.43.33 23.33.93.23.93.43.3.43.33.53 23.33.93.23.93.43.3.43.33.53.63 23.33.93.23.93.43.3.43.33.53.63.73 23.33.93.23.93.43.3.43.33.53.63.73.13 23.33.93.23.93.43.3.43.33.53.63.73.13.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 74 74.74 74.74.54 74.74.54.84 74.74.54.84.74 74.74.54.84.74.24 74.74.54.84.74.24.4 74.74.54.84.74.24.4.94 74.74.54.84.74.24.4.94.84 74.74.54.84.74.24.4.94.84.74 74.74.54.84.74.24.4.94.84.74.34 74.74.54.84.74.24.4.94.84.74.34.34 74.74.54.84.74.24.4.94.84.74.34.34.44 74.74.54.84.74.24.4.94.84.74.34.34.44.74 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65 65.35 65.35.85 65.35.85.85 65.35.85.85.55 65.35.85.85.55.15 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 65.35.85.85.55.15.25.75.95 65.35.85.85.55.15.25.75.95.65 65.35.85.85.55.15.25.75.95.65.65 65.35.85.85.55.15.25.75.95.65.65.35 65.35.85.85.55.15.25.75.95.65.65.35.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 26 26.96 26.96.46 26.96.46.6 26.96.46.6.46 26.96.46.6.46.16 26.96.46.6.46.16.16 26.96.46.6.46.16.16.86 26.96.46.6.46.16.16.86.56 26.96.46.6.46.16.16.86.56.56 26.96.46.6.46.16.16.86.56.56.56 26.96.46.6.46.16.16.86.56.56.56.16 26.96.46.6.46.16.16.86.56.56.56.16.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 97 97.27 97.27.97 97.27.97.67 97.27.97.67.77 97.27.97.67.77.47 97.27.97.67.77.47.7 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38 38.68 38.68.78 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 38.68.78.8.28.98.78.58.98 38.68.78.8.28.98.78.58.98.8 38.68.78.8.28.98.78.58.98.8.88 38.68.78.8.28.98.78.58.98.8.88.8 38.68.78.8.28.98.78.58.98.8.88.8.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 99 99.89 99.89.59 99.89.59.39 99.89.59.39.99 99.89.59.39.99.29 99.89.59.39.99.29.59 99.89.59.39.99.29.59.89 99.89.59.39.99.29.59.89.89 99.89.59.39.99.29.59.89.89.29 99.89.59.39.99.29.59.89.89.29.9 99.89.59.39.99.29.59.89.89.29.9.79 99.89.59.39.99.29.59.89.89.29.9.79.49 99.89.59.39.99.29.59.89.89.29.9.79.49.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 90.40.30.80.20.90 + 90.40.30.80.20.90.60 90.40.30.80.20.90.60.70 90.40.30.80.20.90.60.70.80 + 90.40.30.80.20.90.60.70.80.90 90.40.30.80.20.90.60.70.80.90.30 + 90.40.30.80.20.90.60.70.80.90.30.50 + 90.40.30.80.20.90.60.70.80.90.30.50.10 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 81 81.91 81.91.61 + 81.91.61.91 81.91.61.91.91 81.91.61.91.91.1 81.91.61.91.91.1.81 + 81.91.61.91.91.1.81.41 81.91.61.91.91.1.81.41.61 + 81.91.61.91.91.1.81.41.61.1 81.91.61.91.91.1.81.41.61.1.21 + 81.91.61.91.91.1.81.41.61.1.21.11 81.91.61.91.91.1.81.41.61.1.21.11.51 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 62 62.12 + 62.12.32 62.12.32.22 62.12.32.22.42 62.12.32.22.42.2 + 62.12.32.22.42.2.72 62.12.32.22.42.2.72.12 62.12.32.22.42.2.72.12.22 + 62.12.32.22.42.2.72.12.22.2 62.12.32.22.42.2.72.12.22.2.72 + 62.12.32.22.42.2.72.12.22.2.72.72 62.12.32.22.42.2.72.12.22.2.72.72.12 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 93 93.23 93.23.93 + 93.23.93.43 93.23.93.43.3 93.23.93.43.3.43 93.23.93.43.3.43.33 + 93.23.93.43.3.43.33.53 93.23.93.43.3.43.33.53.63 + 93.23.93.43.3.43.33.53.63.73 93.23.93.43.3.43.33.53.63.73.13 + 93.23.93.43.3.43.33.53.63.73.13.73 93.23.93.43.3.43.33.53.63.73.13.73.73 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 54 54.84 + 54.84.74 54.84.74.24 54.84.74.24.4 54.84.74.24.4.94 + 54.84.74.24.4.94.84 54.84.74.24.4.94.84.74 54.84.74.24.4.94.84.74.34 + 54.84.74.24.4.94.84.74.34.34 54.84.74.24.4.94.84.74.34.34.44 + 54.84.74.24.4.94.84.74.34.34.44.74 54.84.74.24.4.94.84.74.34.34.44.74.64 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65 65.35 + 65.35.85 65.35.85.85 65.35.85.85.55 65.35.85.85.55.15 + 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 65.35.85.85.55.15.25.75.95 + 65.35.85.85.55.15.25.75.95.65 65.35.85.85.55.15.25.75.95.65.65 + 65.35.85.85.55.15.25.75.95.65.65.35 65.35.85.85.55.15.25.75.95.65.65.35.5 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 96 96.46 + 96.46.6 96.46.6.46 96.46.6.46.16 96.46.6.46.16.16 + 96.46.6.46.16.16.86 96.46.6.46.16.16.86.56 96.46.6.46.16.16.86.56.56 + 96.46.6.46.16.16.86.56.56.56 96.46.6.46.16.16.86.56.56.56.16 + 96.46.6.46.16.16.86.56.56.56.16.36 96.46.6.46.16.16.86.56.56.56.16.36.76 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 97 97.27 + 97.27.97 97.27.97.67 97.27.97.67.77 97.27.97.67.77.47 + 97.27.97.67.77.47.7 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 + 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 + 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38 38.68 + 38.68.78 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 + 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 38.68.78.8.28.98.78.58.98 + 38.68.78.8.28.98.78.58.98.8 38.68.78.8.28.98.78.58.98.8.88 + 38.68.78.8.28.98.78.58.98.8.88.8 38.68.78.8.28.98.78.58.98.8.88.8.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 89 89.59 89.59.39 + 89.59.39.99 89.59.39.99.29 89.59.39.99.29.59 89.59.39.99.29.59.89 + 89.59.39.99.29.59.89.89 89.59.39.99.29.59.89.89.29 + 89.59.39.99.29.59.89.89.29.9 89.59.39.99.29.59.89.89.29.9.79 + 89.59.39.99.29.59.89.89.29.9.79.49 89.59.39.99.29.59.89.89.29.9.79.49.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.7.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.1 0.1.1 0.1.1.2 0.1.1.2.2 0.1.1.2.2.2 0.1.1.2.2.2.3 0.1.1.2.2.2.3.3 0.1.1.2.2.2.3.3.4 0.1.1.2.2.2.3.3.4.5 0.1.1.2.2.2.3.3.4.5.5 0.1.1.2.2.2.3.3.4.5.5.6 0.1.1.2.2.2.3.3.4.5.5.6.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99} +} {1 1.1 1.1.2 1.1.2.2 1.1.2.2.3 1.1.2.2.3.3 1.1.2.2.3.3.4 + 1.1.2.2.3.3.4.5 1.1.2.2.3.3.4.5.6 1.1.2.2.3.3.4.5.6.7 + 1.1.2.2.3.3.4.5.6.7.7 1.1.2.2.3.3.4.5.6.7.7.7 1.1.2.2.3.3.4.5.6.7.7.7.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99} do_execsql_test 1.7.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.10 0.10.20 0.10.20.30 0.10.20.30.30 0.10.20.30.30.30 0.10.20.30.30.30.40 0.10.20.30.30.30.40.50 0.10.20.30.30.30.40.50.60 0.10.20.30.30.30.40.50.60.70 0.10.20.30.30.30.40.50.60.70.80 0.10.20.30.30.30.40.50.60.70.80.80 0.10.20.30.30.30.40.50.60.70.80.80.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 1 1.1 1.1.11 1.1.11.11 1.1.11.11.21 1.1.11.11.21.21 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 1.1.11.11.21.21.31.31.41 1.1.11.11.21.21.31.31.41.41 1.1.11.11.21.21.31.31.41.41.41 1.1.11.11.21.21.31.31.41.41.41.51 1.1.11.11.21.21.31.31.41.41.41.51.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 2 2.2 2.2.2 2.2.2.12 2.2.2.12.12 2.2.2.12.12.12 2.2.2.12.12.12.22 2.2.2.12.12.12.22.22 2.2.2.12.12.12.22.22.32 2.2.2.12.12.12.22.22.32.42 2.2.2.12.12.12.22.22.32.42.52 2.2.2.12.12.12.22.22.32.42.52.62 2.2.2.12.12.12.22.22.32.42.52.62.62 2.2.2.12.12.12.22.22.32.42.52.62.62.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3 3.3 3.3.13 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.23 3.3.13.13.23.23.23.33 3.3.13.13.23.23.23.33.33 3.3.13.13.23.23.23.33.33.33 3.3.13.13.23.23.23.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 4 4.14 4.14.24 4.14.24.34 4.14.24.34.34 4.14.24.34.34.34 4.14.24.34.34.34.34 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 5 5.5 5.5.15 5.5.15.15 5.5.15.15.15 5.5.15.15.15.25 5.5.15.15.15.25.35 5.5.15.15.15.25.35.35 5.5.15.15.15.25.35.35.55 5.5.15.15.15.25.35.35.55.55 5.5.15.15.15.25.35.35.55.55.65 5.5.15.15.15.25.35.35.55.55.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 6 6.16 6.16.16 6.16.16.16 6.16.16.16.26 6.16.16.16.26.26 6.16.16.16.26.26.26 6.16.16.16.26.26.26.36 6.16.16.16.26.26.26.36.36 6.16.16.16.26.26.26.36.36.36 6.16.16.16.26.26.26.36.36.36.36 6.16.16.16.26.26.26.36.36.36.36.46 6.16.16.16.26.26.26.36.36.36.36.46.46 6.16.16.16.26.26.26.36.36.36.36.46.46.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7 7.7 7.7.7 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 7.7.7.17.27.27.37.37 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47.57 7.7.7.17.27.27.37.37.47.47.47.47.57.67 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8 8.8 8.8.8 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 8.8.8.28.38.38.58.58 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 8.8.8.28.38.38.58.58.58.58.68.78.78 8.8.8.28.38.38.58.58.58.58.68.78.78.88 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9 9.9 9.9.9 9.9.9.19 9.9.9.19.29 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 9.9.9.19.29.29.29.39.39 9.9.9.19.29.29.29.39.39.39 9.9.9.19.29.29.29.39.39.39.49 9.9.9.19.29.29.29.39.39.39.49.59 9.9.9.19.29.29.29.39.39.39.49.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99} +} {10 10.20 10.20.30 10.20.30.30 10.20.30.30.30 10.20.30.30.30.40 + 10.20.30.30.30.40.50 10.20.30.30.30.40.50.60 10.20.30.30.30.40.50.60.70 + 10.20.30.30.30.40.50.60.70.80 10.20.30.30.30.40.50.60.70.80.80 + 10.20.30.30.30.40.50.60.70.80.80.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 1 1.1 1.1.11 1.1.11.11 + 1.1.11.11.21 1.1.11.11.21.21 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 + 1.1.11.11.21.21.31.31.41 1.1.11.11.21.21.31.31.41.41 + 1.1.11.11.21.21.31.31.41.41.51 1.1.11.11.21.21.31.31.41.41.51.61 + 1.1.11.11.21.21.31.31.41.41.51.61.61 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 2 2.2 + 2.2.12 2.2.12.12 2.2.12.12.12 2.2.12.12.12.22 2.2.12.12.12.22.22 + 2.2.12.12.12.22.22.32 2.2.12.12.12.22.22.32.42 + 2.2.12.12.12.22.22.32.42.52 2.2.12.12.12.22.22.32.42.52.62 + 2.2.12.12.12.22.22.32.42.52.62.62 2.2.12.12.12.22.22.32.42.52.62.62.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3 3.3 3.3.13 + 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.33 + 3.3.13.13.23.23.33.33 3.3.13.13.23.23.33.33.33 + 3.3.13.13.23.23.33.33.33.33 3.3.13.13.23.23.33.33.33.33.43 + 3.3.13.13.23.23.33.33.33.33.43.43 3.3.13.13.23.23.33.33.33.33.43.43.53 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 4 4.14 + 4.14.24 4.14.24.34 4.14.24.34.34 4.14.24.34.34.34 + 4.14.24.34.34.34.34 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 + 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 + 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 5 5.15 + 5.15.15 5.15.15.15 5.15.15.15.25 5.15.15.15.25.35 + 5.15.15.15.25.35.35 5.15.15.15.25.35.35.55 5.15.15.15.25.35.35.55.55 + 5.15.15.15.25.35.35.55.55.65 5.15.15.15.25.35.35.55.55.65.65 + 5.15.15.15.25.35.35.55.55.65.65.65 5.15.15.15.25.35.35.55.55.65.65.65.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 6 6.16 + 6.16.16 6.16.16.16 6.16.16.16.26 6.16.16.16.26.26 + 6.16.16.16.26.26.36 6.16.16.16.26.26.36.36 6.16.16.16.26.26.36.36.36 + 6.16.16.16.26.26.36.36.36.36 6.16.16.16.26.26.36.36.36.36.46 + 6.16.16.16.26.26.36.36.36.36.46.46 6.16.16.16.26.26.36.36.36.36.46.46.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7 7.7 + 7.7.7 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 + 7.7.7.17.27.27.37.37 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 + 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 + 7.7.7.17.27.27.37.37.47.47.47.47.57 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8 8.8 8.8.8 + 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 + 8.8.8.28.38.38.58.58 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 + 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 + 8.8.8.28.38.38.58.58.58.58.68.78.78 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9 9.9 9.9.9 9.9.9.19 + 9.9.9.19.29 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 + 9.9.9.19.29.29.29.39.39 9.9.9.19.29.29.29.39.39.39 + 9.9.9.19.29.29.29.39.39.39.49 9.9.9.19.29.29.29.39.39.39.49.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99} do_execsql_test 1.7.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 0.90.40.30.80.20.90.60.70.80.90.30 0.90.40.30.80.20.90.60.70.80.90.30.50 0.90.40.30.80.20.90.60.70.80.90.30.50.10 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 90.40.30.80.20.90 + 90.40.30.80.20.90.60 90.40.30.80.20.90.60.70 90.40.30.80.20.90.60.70.80 + 90.40.30.80.20.90.60.70.80.90 90.40.30.80.20.90.60.70.80.90.30 + 90.40.30.80.20.90.60.70.80.90.30.50 + 90.40.30.80.20.90.60.70.80.90.30.50.10 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.7.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.7.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.7.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.7.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.7.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 {} 2 74 3 74 4 74.74 5 74.74 6 74.74.99 7 74.74.99 8 74.74.99.33 9 74.74.99.33 10 74.74.99.33.89 11 74.74.99.33.89 12 74.74.99.33.89.96 13 74.74.99.33.89.96 14 74.74.99.33.89.96.38 15 74.74.99.33.89.96.38 16 74.74.99.33.89.96.38.39 17 74.74.99.33.89.96.38.39 18 74.74.99.33.89.96.38.39.91 19 74.74.99.33.89.96.38.39.91 20 74.74.99.33.89.96.38.39.91.6 21 74.74.99.33.89.96.38.39.91.6 22 74.74.99.33.89.96.38.39.91.6.97 23 74.74.99.33.89.96.38.39.91.6.97 24 74.74.99.33.89.96.38.39.91.6.97.46 25 74.74.99.33.89.96.38.39.91.6.97.46 26 74.74.99.33.89.96.38.39.91.6.97.46.54 27 74.74.99.33.89.96.38.39.91.6.97.46.54 28 74.74.99.33.89.96.38.39.91.6.97.46.54.8 29 74.74.99.33.89.96.38.39.91.6.97.46.54.8 30 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 31 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 32 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 33 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 34 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 35 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 36 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 37 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 38 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 39 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 40 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 41 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 42 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 43 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 44 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 45 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 46 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 47 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 48 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 49 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 50 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 51 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 52 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 53 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 54 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 55 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 56 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 57 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 58 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 59 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 60 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 61 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 62 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 63 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 64 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 65 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 66 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 67 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 68 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 69 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 70 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 71 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 72 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 73 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 74 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 75 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 76 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 77 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 78 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 79 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 80 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 81 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 82 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 83 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 84 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 85 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 86 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 87 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 88 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 89 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 90 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 91 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 92 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 93 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 94 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 95 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 96 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 97 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 98 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 99 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 100 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 101 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 102 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 103 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 104 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 105 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 106 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 107 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 108 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 109 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 110 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 111 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 112 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 113 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 114 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 115 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 116 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 117 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 118 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 119 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 120 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 121 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 122 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 123 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 124 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 125 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 126 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 127 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 128 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 129 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 130 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 131 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 132 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 133 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 134 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 135 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 136 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 137 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 138 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 139 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 140 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 141 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 142 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 143 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 144 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 145 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 146 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 147 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 148 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 149 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 150 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 151 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 152 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 153 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 154 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 155 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 156 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 157 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 158 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 159 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 160 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 161 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 162 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 163 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 164 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 165 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 166 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 167 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 168 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 169 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 170 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 171 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 172 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 173 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 174 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 175 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 176 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 177 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 178 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 179 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 180 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 181 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 182 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 183 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 184 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 185 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 186 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 187 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 188 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 189 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 190 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 191 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 192 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 193 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 194 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 195 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 196 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 197 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 198 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 199 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 200 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} +} {1 89 2 89 3 89.96 4 89.96 5 89.96.38 6 89.96.38 7 89.96.38.39 + 8 89.96.38.39 9 89.96.38.39.91 10 89.96.38.39.91 11 89.96.38.39.91.6 + 12 89.96.38.39.91.6 13 89.96.38.39.91.6.97 14 89.96.38.39.91.6.97 + 15 89.96.38.39.91.6.97.46 16 89.96.38.39.91.6.97.46 + 17 89.96.38.39.91.6.97.46.54 18 89.96.38.39.91.6.97.46.54 + 19 89.96.38.39.91.6.97.46.54.8 20 89.96.38.39.91.6.97.46.54.8 + 21 89.96.38.39.91.6.97.46.54.8.29 22 89.96.38.39.91.6.97.46.54.8.29 + 23 89.96.38.39.91.6.97.46.54.8.29.84 24 89.96.38.39.91.6.97.46.54.8.29.84 + 25 89.96.38.39.91.6.97.46.54.8.29.84.23 + 26 89.96.38.39.91.6.97.46.54.8.29.84.23 + 27 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 28 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 29 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 30 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 31 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 32 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 33 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 34 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 35 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 36 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 37 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 38 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 39 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 40 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 41 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 42 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 43 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 44 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 45 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 46 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 47 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 48 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 49 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 50 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 51 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 52 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 53 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 54 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 55 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 56 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 57 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 58 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 59 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 60 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 61 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 62 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 63 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 64 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 65 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 66 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 67 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 68 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 69 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 70 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 71 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 72 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 73 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 74 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 75 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 76 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 77 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 78 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 79 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 80 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 81 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 82 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 83 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 84 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 85 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 86 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 87 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 88 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 89 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 90 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 91 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 92 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 93 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 94 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 95 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 96 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 97 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 98 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 99 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 100 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 101 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 102 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 103 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 104 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 105 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 106 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 107 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 108 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 109 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 110 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 111 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 112 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 113 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 114 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 115 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 116 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 117 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 118 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 119 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 120 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 121 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 122 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 123 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 124 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 125 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 126 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 127 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 128 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 129 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 130 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 131 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 132 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 133 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 134 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 135 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 136 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 137 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 138 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 139 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 140 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 141 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 142 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 143 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 144 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 145 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 146 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 147 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 148 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 149 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 150 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 151 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 152 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 153 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 154 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 155 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 156 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 157 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 158 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 159 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 160 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 161 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 162 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 163 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 164 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 165 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 166 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 167 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 168 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 169 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 170 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 171 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 172 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 173 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 174 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 175 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 176 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 177 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 178 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 179 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 180 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 181 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 182 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 183 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 184 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 185 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 186 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 187 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 + 188 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 + 189 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 + 190 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} do_execsql_test 1.7.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 22 {} 23 {} 24 {} 25 {} 26 {} 27 {} 28 {} 29 {} 30 {} 31 {} 32 {} 33 {} 34 {} 35 {} 36 {} 37 {} 38 {} 39 {} 40 {} 41 {} 42 {} 43 {} 44 {} 45 {} 46 {} 47 {} 48 {} 49 {} 50 {} 51 {} 52 {} 53 {} 54 {} 55 {} 56 {} 57 {} 58 {} 59 {} 60 {} 61 {} 62 {} 63 {} 64 {} 65 {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} 72 {} 73 {} 74 {} 75 {} 76 {} 77 {} 78 {} 79 {} 80 {} 81 {} 82 {} 83 {} 84 {} 85 {} 86 {} 87 {} 88 {} 89 {} 90 {} 91 {} 92 {} 93 {} 94 {} 95 {} 96 {} 97 {} 98 {} 99 {} 100 {} 101 {} 102 {} 103 {} 104 {} 105 {} 106 {} 107 {} 108 {} 109 {} 110 {} 111 {} 112 {} 113 {} 114 {} 115 {} 116 {} 117 {} 118 {} 119 {} 120 {} 121 {} 122 {} 123 {} 124 {} 125 {} 126 {} 127 {} 128 {} 129 {} 130 {} 131 {} 132 {} 133 {} 134 {} 135 {} 136 {} 137 {} 138 {} 139 {} 140 {} 141 {} 142 {} 143 {} 144 {} 145 {} 146 {} 147 {} 148 {} 149 {} 150 {} 151 {} 152 {} 153 {} 154 {} 155 {} 156 {} 157 {} 158 {} 159 {} 160 {} 161 {} 162 {} 163 {} 164 {} 165 {} 166 {} 167 {} 168 {} 169 {} 170 {} 171 {} 172 {} 173 {} 174 {} 175 {} 176 {} 177 {} 178 {} 179 {} 180 {} 181 {} 182 {} 183 {} 184 {} 185 {} 186 {} 187 {} 188 {} 189 {} 190 {} 191 {} 192 {} 193 {} 194 {} 195 {} 196 {} 197 {} 198 {} 199 {} 200 {} 201 {}} +} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} + 20 {} 21 {} 22 {} 23 {} 24 {} 25 {} 26 {} 27 {} 28 {} + 29 {} 30 {} 31 {} 32 {} 33 {} 34 {} 35 {} 36 {} 37 {} + 38 {} 39 {} 40 {} 41 {} 42 {} 43 {} 44 {} 45 {} 46 {} + 47 {} 48 {} 49 {} 50 {} 51 {} 52 {} 53 {} 54 {} 55 {} + 56 {} 57 {} 58 {} 59 {} 60 {} 61 {} 62 {} 63 {} 64 {} + 65 {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} 72 {} 73 {} + 74 {} 75 {} 76 {} 77 {} 78 {} 79 {} 80 {} 81 {} 82 {} + 83 {} 84 {} 85 {} 86 {} 87 {} 88 {} 89 {} 90 {} 91 {} + 92 {} 93 {} 94 {} 95 {} 96 {} 97 {} 98 {} 99 {} 100 {} + 101 {} 102 {} 103 {} 104 {} 105 {} 106 {} 107 {} 108 {} + 109 {} 110 {} 111 {} 112 {} 113 {} 114 {} 115 {} 116 {} + 117 {} 118 {} 119 {} 120 {} 121 {} 122 {} 123 {} 124 {} + 125 {} 126 {} 127 {} 128 {} 129 {} 130 {} 131 {} 132 {} + 133 {} 134 {} 135 {} 136 {} 137 {} 138 {} 139 {} 140 {} + 141 {} 142 {} 143 {} 144 {} 145 {} 146 {} 147 {} 148 {} + 149 {} 150 {} 151 {} 152 {} 153 {} 154 {} 155 {} 156 {} + 157 {} 158 {} 159 {} 160 {} 161 {} 162 {} 163 {} 164 {} + 165 {} 166 {} 167 {} 168 {} 169 {} 170 {} 171 {} 172 {} + 173 {} 174 {} 175 {} 176 {} 177 {} 178 {} 179 {} 180 {} + 181 {} 182 {} 183 {} 184 {} 185 {} 186 {} 187 {} 188 {} + 189 {} 190 {} 191 {}} do_execsql_test 1.7.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {}} +} {1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} + 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} + 20 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {} 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} + 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} + 19 {}} do_execsql_test 1.7.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) -} {1 89 2 89.6 3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 8 89.6.29.47.59.28.75.78 9 89.6.29.47.59.28.75.78.72 10 89.6.29.47.59.28.75.78.72.98 11 89.6.29.47.59.28.75.78.72.98.87 12 89.6.29.47.59.28.75.78.72.98.87.73 13 89.6.29.47.59.28.75.78.72.98.87.73.96 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 17 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91 18 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69 19 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 1 74 2 74.96 3 74.96.97 4 74.96.97.84 5 74.96.97.84.86 6 74.96.97.84.86.32 7 74.96.97.84.86.32.25 8 74.96.97.84.86.32.25.89 9 74.96.97.84.86.32.25.89.29 10 74.96.97.84.86.32.25.89.29.9 11 74.96.97.84.86.32.25.89.29.9.21 12 74.96.97.84.86.32.25.89.29.9.21.12 13 74.96.97.84.86.32.25.89.29.9.21.12.88 14 74.96.97.84.86.32.25.89.29.9.21.12.88.55 15 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70 16 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 17 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81 18 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91 19 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 74 2 74.38 3 74.38.46 4 74.38.46.23 5 74.38.46.23.61 6 74.38.46.23.61.3 7 74.38.46.23.61.3.1 8 74.38.46.23.61.3.1.76 9 74.38.46.23.61.3.1.76.63 10 74.38.46.23.61.3.1.76.63.73 11 74.38.46.23.61.3.1.76.63.73.65 12 74.38.46.23.61.3.1.76.63.73.65.20 13 74.38.46.23.61.3.1.76.63.73.65.20.8 14 74.38.46.23.61.3.1.76.63.73.65.20.8.77 15 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19 16 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 17 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23 18 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15 19 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 99 2 99.39 3 99.39.54 4 99.39.54.16 5 99.39.54.16.85 6 99.39.54.16.85.22 7 99.39.54.16.85.22.40 8 99.39.54.16.85.22.40.4 9 99.39.54.16.85.22.40.4.87 10 99.39.54.16.85.22.40.4.87.65 11 99.39.54.16.85.22.40.4.87.65.5 12 99.39.54.16.85.22.40.4.87.65.5.31 13 99.39.54.16.85.22.40.4.87.65.5.31.49 14 99.39.54.16.85.22.40.4.87.65.5.31.49.2 15 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26 16 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 17 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13 18 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36 19 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 1 33 2 33.91 3 33.91.8 4 33.91.8.65 5 33.91.8.65.85 6 33.91.8.65.85.55 7 33.91.8.65.85.55.56 8 33.91.8.65.85.55.56.42 9 33.91.8.65.85.55.56.42.80 10 33.91.8.65.85.55.56.42.80.58 11 33.91.8.65.85.55.56.42.80.58.11 12 33.91.8.65.85.55.56.42.80.58.11.95 13 33.91.8.65.85.55.56.42.80.58.11.95.90 14 33.91.8.65.85.55.56.42.80.58.11.95.90.85 15 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47 16 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 17 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14 18 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3 19 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 1 {} 2 {} 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {}} +} {1 89 2 89.6 3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 + 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 8 89.6.29.47.59.28.75.78 + 9 89.6.29.47.59.28.75.78.72 10 89.6.29.47.59.28.75.78.72.98 + 11 89.6.29.47.59.28.75.78.72.98.87 12 89.6.29.47.59.28.75.78.72.98.87.73 + 13 89.6.29.47.59.28.75.78.72.98.87.73.96 + 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 + 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 + 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 + 17 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91 + 18 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69 + 19 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 96 2 96.97 + 3 96.97.84 4 96.97.84.86 5 96.97.84.86.32 6 96.97.84.86.32.25 + 7 96.97.84.86.32.25.89 8 96.97.84.86.32.25.89.29 + 9 96.97.84.86.32.25.89.29.9 10 96.97.84.86.32.25.89.29.9.21 + 11 96.97.84.86.32.25.89.29.9.21.12 12 96.97.84.86.32.25.89.29.9.21.12.88 + 13 96.97.84.86.32.25.89.29.9.21.12.88.55 + 14 96.97.84.86.32.25.89.29.9.21.12.88.55.70 + 15 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 + 16 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81 + 17 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91 + 18 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 38 2 38.46 + 3 38.46.23 4 38.46.23.61 5 38.46.23.61.3 6 38.46.23.61.3.1 + 7 38.46.23.61.3.1.76 8 38.46.23.61.3.1.76.63 9 38.46.23.61.3.1.76.63.73 + 10 38.46.23.61.3.1.76.63.73.65 11 38.46.23.61.3.1.76.63.73.65.20 + 12 38.46.23.61.3.1.76.63.73.65.20.8 + 13 38.46.23.61.3.1.76.63.73.65.20.8.77 + 14 38.46.23.61.3.1.76.63.73.65.20.8.77.19 + 15 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 + 16 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23 + 17 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15 + 18 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 39 2 39.54 + 3 39.54.16 4 39.54.16.85 5 39.54.16.85.22 6 39.54.16.85.22.40 + 7 39.54.16.85.22.40.4 8 39.54.16.85.22.40.4.87 + 9 39.54.16.85.22.40.4.87.65 10 39.54.16.85.22.40.4.87.65.5 + 11 39.54.16.85.22.40.4.87.65.5.31 12 39.54.16.85.22.40.4.87.65.5.31.49 + 13 39.54.16.85.22.40.4.87.65.5.31.49.2 + 14 39.54.16.85.22.40.4.87.65.5.31.49.2.26 + 15 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 + 16 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13 + 17 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36 + 18 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 1 91 2 91.8 + 3 91.8.65 4 91.8.65.85 5 91.8.65.85.55 6 91.8.65.85.55.56 + 7 91.8.65.85.55.56.42 8 91.8.65.85.55.56.42.80 + 9 91.8.65.85.55.56.42.80.58 10 91.8.65.85.55.56.42.80.58.11 + 11 91.8.65.85.55.56.42.80.58.11.95 12 91.8.65.85.55.56.42.80.58.11.95.90 + 13 91.8.65.85.55.56.42.80.58.11.95.90.85 + 14 91.8.65.85.55.56.42.80.58.11.95.90.85.47 + 15 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 + 16 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14 + 17 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3 + 18 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 1 {} 2 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} + 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {}} do_execsql_test 1.8.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 74 74 74 74 99 99 99 99 99 89 96 96 96 96 96 68 91 91 91 99 99 99 99 99 97 97 97 97 97 97 93 93 93 93 84 93 93 93 93 93 86 86 86 91 91 91 91 91 85 85 85 59 59 91 91 91 91 91 90 90 89 89 89 89 56 56 56 56 75 75 89 98 98 98 98 98 94 94 94 94 78 78 78 63 87 87 87 87 87 84 84 84 73 95 95 95 95 96 98 98 98 98 98 74 74 74 73 73 87 87 87 87 87 41 31 31 95 95 95 95 95 88 88 88 88 49 90 90 96 96 96 96 96 77 77 77 85 85 85 85 85 74 74 70 70 59 47 80 90 90 90 90 90 72 72 72 72 93 93 93 93 93 81 81 81 37 37 62 91 91 91 91 91 91 91 99 99 99 99 99 95 95 69 84 84 84 84 84 84 84 58 58 58 58 83 83 83 83 83 82} +} {89 89 96 96 96 96 96 68 91 91 91 99 99 99 99 + 99 97 97 97 97 97 97 93 93 93 93 84 93 93 93 + 93 93 86 86 86 91 91 91 91 91 85 85 85 59 59 + 91 91 91 91 91 90 90 89 89 89 89 56 56 56 56 + 75 75 89 98 98 98 98 98 94 94 94 94 78 78 78 + 63 87 87 87 87 87 84 84 84 73 95 95 95 95 96 + 98 98 98 98 98 74 74 74 73 73 87 87 87 87 87 + 41 31 31 95 95 95 95 95 88 88 88 88 49 90 90 + 96 96 96 96 96 77 77 77 85 85 85 85 85 74 74 + 70 70 59 47 80 90 90 90 90 90 72 72 72 72 93 + 93 93 93 93 81 81 81 37 37 62 91 91 91 91 91 + 91 91 99 99 99 99 99 95 95 69 84 84 84 84 84 + 84 84 58 58 58 58 83 83 83 83 83} do_execsql_test 1.8.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 23 23 23 2 2 2 2 2 38 38 38 38 38 39 6 6 6 6 6 27 27 27 8 8 8 8 8 29 23 16 16 16 16 16 16 7 7 7 7 7 61 24 24 24 24 12 12 12 3 3 3 3 3 15 15 15 15 15 1 1 1 1 1 16 16 16 16 16 36 36 4 4 4 4 4 30 29 29 29 2 2 2 2 2 37 37 9 9 9 9 9 13 13 13 13 1 1 1 1 1 5 5 5 5 5 11 11 8 8 8 8 8 15 15 15 15 22 22 8 8 8 8 8 11 34 34 55 55 55 44 2 2 2 2 2 7 29 29 19 19 19 19 19 26 26 26 36 36 9 9 9 9 9 33 33 33 33 9 9 9 9 9 12 12 12 12 14 33 15 15 15 15 3 3 3 3 3 30 30 30 10 10 10 10 10 21 21 21 30 30 30 27 27 17 7 5} +} {89 81 81 59 38 38 38 38 38 39 6 6 6 6 6 27 + 27 27 8 8 8 8 8 29 23 16 16 16 16 16 16 7 7 + 7 7 7 61 24 24 24 24 12 12 12 3 3 3 3 3 15 + 15 15 15 15 1 1 1 1 1 16 16 16 16 16 36 36 + 4 4 4 4 4 30 29 29 29 2 2 2 2 2 37 37 9 9 + 9 9 9 13 13 13 13 1 1 1 1 1 5 5 5 5 5 11 + 11 8 8 8 8 8 15 15 15 15 22 22 8 8 8 8 8 + 11 34 34 55 55 55 44 2 2 2 2 2 7 29 29 19 + 19 19 19 19 26 26 26 36 36 9 9 9 9 9 33 33 + 33 33 9 9 9 9 9 12 12 12 12 14 33 15 15 15 + 15 3 3 3 3 3 30 30 30 10 10 10 10 10 21 21 + 21 30 30 30 27 27 17 7} do_execsql_test 1.8.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.8.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.8.3.3 { SELECT row_number() OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.8.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.8.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.8.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.8.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.8.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.8.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.8.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.8.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.8.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.8.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.8.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.8.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.8.6.1 { SELECT @@ -3835,7 +14578,33 @@ do_execsql_test 1.8.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.8.7.1 { @@ -3843,11 +14612,13 @@ do_test 1.8.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3858,11 +14629,13 @@ do_test 1.8.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3873,11 +14646,13 @@ do_test 1.8.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3888,11 +14663,13 @@ do_test 1.8.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3903,11 +14680,13 @@ do_test 1.8.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3918,11 +14697,13 @@ do_test 1.8.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3933,11 +14714,13 @@ do_test 1.8.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3948,11 +14731,13 @@ do_test 1.8.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3963,11 +14748,13 @@ do_test 1.8.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3978,11 +14765,13 @@ do_test 1.8.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -3993,11 +14782,13 @@ do_test 1.8.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4008,11 +14799,13 @@ do_test 1.8.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4023,11 +14816,13 @@ do_test 1.8.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4038,11 +14833,13 @@ do_test 1.8.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4053,11 +14850,13 @@ do_test 1.8.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4068,11 +14867,13 @@ do_test 1.8.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4083,11 +14884,13 @@ do_test 1.8.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4098,11 +14901,13 @@ do_test 1.8.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4113,250 +14918,1207 @@ do_test 1.8.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.8.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 76 44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206} +} {99 92 108 72 52 83 55 79 109 65 26 120 119 50 + 70 103 80 124 36 96 59 124 116 110 57 51 52 130 + 103 74 87 48 128 117 105 136 131 71 133 92 109 63 + 84 109 57 146 78 147 113 74 88 150 87 110 65 121 + 106 110 124 85 145 107 161 171 150 156 80 171 120 + 109 158 114 111 136 147 87 173 124 168 173 162 132 + 101 154 167 190 161 110 156 195 198 102 123 177 169 + 140 111 180 119 160 197 152 124 121 134 146 147 132 + 213 141 193 200 210 157 132 136 175 161 218 188 226 + 191 187 208 211 179 138 144 223 196 214 170 212 202 + 163 184 172 173 195 229 240 187 210 200 163 227 228 + 223 191 252 235 225 243 172 187 202 179 179 182 231 + 261 207 263 206 189 209 212 276 181 274 249 239 234 + 213 234 269 196 271 221 210 229 235 250 223 232 229 + 279 224 280 216 207} do_execsql_test 1.8.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.8.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 65 102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276} +} {65 102 87 138 57 181 80 111 26 48 144 207 36 121 + 132 101 163 172 196 119 136 63 124 179 110 179 182 + 74 132 189 51 52 85 216 163 134 123 210 78 141 57 + 187 71 87 172 173 50 224 88 59 111 170 109 213 + 223 146 147 84 114 191 206 221 157 161 209 229 74 + 140 107 187 207 212 124 202 52 232 55 184 229 106 + 132 152 120 92 110 179 235 65 70 87 110 195 200 + 175 234 160 234 136 80 113 187 109 121 124 196 156 + 210 239 250 72 109 188 202 191 105 154 79 231 147 + 225 103 161 169 223 96 83 249 212 162 227 228 167 + 180 193 117 177 214 145 208 235 150 110 211 103 158 + 200 168 229 92 156 243 280 279 116 173 269 271 131 + 133 223 128 173 197 210 99 150 161 147 218 240 109 + 136 146 261 263 124 130 252 171 190 213 274 108 195 + 226 119 124 171 198 120 276} do_execsql_test 1.8.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 196 134 109 213 223 106 234 191 212 168 229 147 218 240 65 102 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 11 87 138 63 124 179 78 141 84 120 234 79 231 162 227 228 280 57 181 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 80 182 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 111 206 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 26 51 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 48 144 207 216 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 36 121 132 88 52 232 156 210 239 250 83 103 158 210 171 198 101 163 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276} +} {196 134 109 213 223 106 234 191 212 168 229 147 218 + 240 65 102 119 136 123 210 146 147 132 152 160 105 + 154 92 156 243 109 136 146 261 263 87 138 63 124 + 179 78 141 84 120 234 79 231 162 227 228 280 57 + 181 110 179 57 187 114 191 206 221 92 110 136 147 + 167 180 193 279 124 130 252 80 182 71 157 161 209 + 229 179 235 80 225 117 177 214 116 173 269 271 171 + 111 74 132 189 87 74 140 113 187 103 161 169 145 + 208 235 131 133 223 190 213 274 26 51 52 85 172 + 173 107 187 207 212 65 70 109 121 124 223 150 128 + 108 195 226 48 144 207 216 50 224 124 202 87 110 + 195 200 196 96 110 211 173 197 119 124 36 121 132 + 88 52 232 156 210 239 250 83 103 158 210 171 198 + 101 163 172 163 59 111 170 55 184 229 175 72 109 + 188 202 249 200 99 150 161 120 276} do_execsql_test 1.8.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.8.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.8.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 56 {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} 56 + {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} + {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} + 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 99 {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 1 1 1 1 2 2 3 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} 1 2 2 2 3 4 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 91 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 0 0 0 0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27} +} {89 89 89 89 89 81 96 59 38 68 39 62 91 46 6 + 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 + 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 + 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 + 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 + 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 + 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 + 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 + 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 + 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 + 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 + 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 + 39 44 58 30 38 34 83} do_execsql_test 1.8.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 0 0 0 0 90 40 30 80 20 90 60 70 80 90 41 41 41 41 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 2 2 2 2 2 62 12 32 22 42 2 72 12 22 2 72 72 23 23 23 23 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 74 74 74 74 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 65 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 26 26 26 26 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 97 97 97 97 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 38 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 99 99 99 99 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 81 + 81 81 81 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 62 62 62 62 62 12 32 22 42 2 72 + 12 22 2 72 72 93 93 93 93 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 54 54 54 54 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 65 + 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 96 96 96 96 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 97 97 97 97 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 38 + 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 89 + 89 89 89 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.8.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98} +} {1 1 1 1 1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 + 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 + 16 16 17 19 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 + 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 + 39 39 39 40 41 41 42 43 43 44 44 46 46 47 47 + 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 + 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 + 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 + 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 + 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 + 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 + 95 96 96 96 97 97} do_execsql_test 1.8.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 10 20 30 30 30 40 50 60 70 80 1 1 1 1 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 2 2 2 2 2 2 2 12 12 12 22 22 32 42 52 62 62 3 3 3 3 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 4 4 4 4 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 5 5 5 5 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 6 6 6 6 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89} +} {10 10 10 10 10 20 30 30 30 40 50 60 70 80 1 1 + 1 1 1 1 11 11 21 21 31 31 41 41 51 61 61 81 + 81 81 91 2 2 2 2 2 2 12 12 12 22 22 32 42 + 52 62 62 3 3 3 3 3 3 13 13 23 23 33 33 33 + 33 43 43 53 63 73 73 73 4 4 4 4 4 14 24 34 + 34 34 34 44 44 54 64 74 74 74 84 5 5 5 5 5 + 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 + 85 6 6 6 6 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 + 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 + 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 + 29 29 39 39 39 49 59 59 59 59 69 79 89} do_execsql_test 1.8.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 0 0 0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 30 + 50 10 30 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 81 91 91 21 62 12 32 22 42 2 72 + 12 22 2 72 72 12 62 52 82 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 33 3 33 83 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 + 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 85 75 15 95 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 + 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 + 58 58 38 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.8.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.8.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.8.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.8.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.8.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.8.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.8.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.8.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.8.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 0.74 0.74.41 0.74.41.74 0.74.41.74.23 74.41.74.23.99 41.74.23.99.26 74.23.99.26.33 23.99.26.33.2 99.26.33.2.89 26.33.2.89.81 33.2.89.81.96 2.89.81.96.59 89.81.96.59.38 81.96.59.38.68 96.59.38.68.39 59.38.68.39.62 38.68.39.62.91 68.39.62.91.46 39.62.91.46.6 62.91.46.6.99 91.46.6.99.97 46.6.99.97.27 6.99.97.27.46 99.97.27.46.78 97.27.46.78.54 27.46.78.54.97 46.78.54.97.8 78.54.97.8.67 54.97.8.67.29 97.8.67.29.93 8.67.29.93.84 67.29.93.84.77 29.93.84.77.23 93.84.77.23.16 84.77.23.16.16 77.23.16.16.93 23.16.16.93.65 16.16.93.65.35 16.93.65.35.47 93.65.35.47.7 65.35.47.7.86 35.47.7.86.74 47.7.86.74.61 7.86.74.61.91 86.74.61.91.85 74.61.91.85.24 61.91.85.24.85 91.85.24.85.43 85.24.85.43.59 24.85.43.59.12 85.43.59.12.32 43.59.12.32.56 59.12.32.56.3 12.32.56.3.91 32.56.3.91.22 56.3.91.22.90 3.91.22.90.55 91.22.90.55.15 22.90.55.15.28 90.55.15.28.89 55.15.28.89.25 15.28.89.25.47 28.89.25.47.1 89.25.47.1.56 25.47.1.56.40 47.1.56.40.43 1.56.40.43.56 56.40.43.56.16 40.43.56.16.75 43.56.16.75.36 56.16.75.36.89 16.75.36.89.98 75.36.89.98.76 36.89.98.76.81 89.98.76.81.4 98.76.81.4.94 76.81.4.94.42 81.4.94.42.30 4.94.42.30.78 94.42.30.78.33 42.30.78.33.29 30.78.33.29.53 78.33.29.53.63 33.29.53.63.2 29.53.63.2.87 53.63.2.87.37 63.2.87.37.80 2.87.37.80.84 87.37.80.84.72 37.80.84.72.41 80.84.72.41.9 84.72.41.9.61 72.41.9.61.73 41.9.61.73.95 9.61.73.95.65 61.73.95.65.13 73.95.65.13.58 95.65.13.58.96 65.13.58.96.98 13.58.96.98.1 58.96.98.1.21 96.98.1.21.74 98.1.21.74.65 1.21.74.65.35 21.74.65.35.5 74.65.35.5.73 65.35.5.73.11 35.5.73.11.51 5.73.11.51.87 73.11.51.87.41 11.51.87.41.12 51.87.41.12.8 87.41.12.8.20 41.12.8.20.31 12.8.20.31.31 8.20.31.31.15 20.31.31.15.95 31.31.15.95.22 31.15.95.22.73 15.95.22.73.79 95.22.73.79.88 22.73.79.88.34 73.79.88.34.8 79.88.34.8.11 88.34.8.11.49 34.8.11.49.34 8.11.49.34.90 11.49.34.90.59 49.34.90.59.96 34.90.59.96.60 90.59.96.60.55 59.96.60.55.75 96.60.55.75.77 60.55.75.77.44 55.75.77.44.2 75.77.44.2.7 77.44.2.7.85 44.2.7.85.57 2.7.85.57.74 7.85.57.74.29 85.57.74.29.70 57.74.29.70.59 74.29.70.59.19 29.70.59.19.39 70.59.19.39.26 59.19.39.26.26 19.39.26.26.47 39.26.26.47.80 26.26.47.80.90 26.47.80.90.36 47.80.90.36.58 80.90.36.58.47 90.36.58.47.9 36.58.47.9.72 58.47.9.72.72 47.9.72.72.66 9.72.72.66.33 72.72.66.33.93 72.66.33.93.75 66.33.93.75.64 33.93.75.64.81 93.75.64.81.9 75.64.81.9.23 64.81.9.23.37 81.9.23.37.13 9.23.37.13.12 23.37.13.12.14 37.13.12.14.62 13.12.14.62.91 12.14.62.91.36 14.62.91.36.91 62.91.36.91.33 91.36.91.33.15 36.91.33.15.34 91.33.15.34.36 33.15.34.36.99 15.34.36.99.3 34.36.99.3.95 36.99.3.95.69 99.3.95.69.58 3.95.69.58.52 95.69.58.52.30 69.58.52.30.50 58.52.30.50.84 52.30.50.84.10 30.50.84.10.84 50.84.10.84.33 84.10.84.33.21 10.84.33.21.39 84.33.21.39.44 33.21.39.44.58 21.39.44.58.30 39.44.58.30.38 44.58.30.38.34 58.30.38.34.83 30.38.34.83.27 38.34.83.27.82 34.83.27.82.17 83.27.82.17.7 27.82.17.7.5} +} {89 89.81 89.81.96 89.81.96.59 89.81.96.59.38 81.96.59.38.68 + 96.59.38.68.39 59.38.68.39.62 38.68.39.62.91 68.39.62.91.46 + 39.62.91.46.6 62.91.46.6.99 91.46.6.99.97 46.6.99.97.27 + 6.99.97.27.46 99.97.27.46.78 97.27.46.78.54 27.46.78.54.97 + 46.78.54.97.8 78.54.97.8.67 54.97.8.67.29 97.8.67.29.93 + 8.67.29.93.84 67.29.93.84.77 29.93.84.77.23 93.84.77.23.16 + 84.77.23.16.16 77.23.16.16.93 23.16.16.93.65 16.16.93.65.35 + 16.93.65.35.47 93.65.35.47.7 65.35.47.7.86 35.47.7.86.74 + 47.7.86.74.61 7.86.74.61.91 86.74.61.91.85 74.61.91.85.24 + 61.91.85.24.85 91.85.24.85.43 85.24.85.43.59 24.85.43.59.12 + 85.43.59.12.32 43.59.12.32.56 59.12.32.56.3 12.32.56.3.91 + 32.56.3.91.22 56.3.91.22.90 3.91.22.90.55 91.22.90.55.15 + 22.90.55.15.28 90.55.15.28.89 55.15.28.89.25 15.28.89.25.47 + 28.89.25.47.1 89.25.47.1.56 25.47.1.56.40 47.1.56.40.43 + 1.56.40.43.56 56.40.43.56.16 40.43.56.16.75 43.56.16.75.36 + 56.16.75.36.89 16.75.36.89.98 75.36.89.98.76 36.89.98.76.81 + 89.98.76.81.4 98.76.81.4.94 76.81.4.94.42 81.4.94.42.30 + 4.94.42.30.78 94.42.30.78.33 42.30.78.33.29 30.78.33.29.53 + 78.33.29.53.63 33.29.53.63.2 29.53.63.2.87 53.63.2.87.37 + 63.2.87.37.80 2.87.37.80.84 87.37.80.84.72 37.80.84.72.41 + 80.84.72.41.9 84.72.41.9.61 72.41.9.61.73 41.9.61.73.95 + 9.61.73.95.65 61.73.95.65.13 73.95.65.13.58 95.65.13.58.96 + 65.13.58.96.98 13.58.96.98.1 58.96.98.1.21 96.98.1.21.74 + 98.1.21.74.65 1.21.74.65.35 21.74.65.35.5 74.65.35.5.73 + 65.35.5.73.11 35.5.73.11.51 5.73.11.51.87 73.11.51.87.41 + 11.51.87.41.12 51.87.41.12.8 87.41.12.8.20 41.12.8.20.31 + 12.8.20.31.31 8.20.31.31.15 20.31.31.15.95 31.31.15.95.22 + 31.15.95.22.73 15.95.22.73.79 95.22.73.79.88 22.73.79.88.34 + 73.79.88.34.8 79.88.34.8.11 88.34.8.11.49 34.8.11.49.34 + 8.11.49.34.90 11.49.34.90.59 49.34.90.59.96 34.90.59.96.60 + 90.59.96.60.55 59.96.60.55.75 96.60.55.75.77 60.55.75.77.44 + 55.75.77.44.2 75.77.44.2.7 77.44.2.7.85 44.2.7.85.57 2.7.85.57.74 + 7.85.57.74.29 85.57.74.29.70 57.74.29.70.59 74.29.70.59.19 + 29.70.59.19.39 70.59.19.39.26 59.19.39.26.26 19.39.26.26.47 + 39.26.26.47.80 26.26.47.80.90 26.47.80.90.36 47.80.90.36.58 + 80.90.36.58.47 90.36.58.47.9 36.58.47.9.72 58.47.9.72.72 + 47.9.72.72.66 9.72.72.66.33 72.72.66.33.93 72.66.33.93.75 + 66.33.93.75.64 33.93.75.64.81 93.75.64.81.9 75.64.81.9.23 + 64.81.9.23.37 81.9.23.37.13 9.23.37.13.12 23.37.13.12.14 + 37.13.12.14.62 13.12.14.62.91 12.14.62.91.36 14.62.91.36.91 + 62.91.36.91.33 91.36.91.33.15 36.91.33.15.34 91.33.15.34.36 + 33.15.34.36.99 15.34.36.99.3 34.36.99.3.95 36.99.3.95.69 + 99.3.95.69.58 3.95.69.58.52 95.69.58.52.30 69.58.52.30.50 + 58.52.30.50.84 52.30.50.84.10 30.50.84.10.84 50.84.10.84.33 + 84.10.84.33.21 10.84.33.21.39 84.33.21.39.44 33.21.39.44.58 + 21.39.44.58.30 39.44.58.30.38 44.58.30.38.34 58.30.38.34.83 + 30.38.34.83.27 38.34.83.27.82 34.83.27.82.17 83.27.82.17.7} do_execsql_test 1.8.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 90.40.30.80.20 40.30.80.20.90 30.80.20.90.60 80.20.90.60.70 20.90.60.70.80 90.60.70.80.90 60.70.80.90.30 70.80.90.30.50 80.90.30.50.10 90.30.50.10.30 41 41.81 41.81.91 41.81.91.61 41.81.91.61.91 81.91.61.91.91 91.61.91.91.1 61.91.91.1.81 91.91.1.81.41 91.1.81.41.61 1.81.41.61.1 81.41.61.1.21 41.61.1.21.11 61.1.21.11.51 1.21.11.51.41 21.11.51.41.31 11.51.41.31.31 51.41.31.31.11 41.31.31.11.81 31.31.11.81.91 31.11.81.91.91 11.81.91.91.21 2 2.62 2.62.12 2.62.12.32 2.62.12.32.22 62.12.32.22.42 12.32.22.42.2 32.22.42.2.72 22.42.2.72.12 42.2.72.12.22 2.72.12.22.2 72.12.22.2.72 12.22.2.72.72 22.2.72.72.12 2.72.72.12.62 72.72.12.62.52 72.12.62.52.82 23 23.33 23.33.93 23.33.93.23 23.33.93.23.93 33.93.23.93.43 93.23.93.43.3 23.93.43.3.43 93.43.3.43.33 43.3.43.33.53 3.43.33.53.63 43.33.53.63.73 33.53.63.73.13 53.63.73.13.73 63.73.13.73.73 73.13.73.73.33 13.73.73.33.93 73.73.33.93.23 73.33.93.23.13 33.93.23.13.33 93.23.13.33.3 23.13.33.3.33 13.33.3.33.83 74 74.74 74.74.54 74.74.54.84 74.74.54.84.74 74.54.84.74.24 54.84.74.24.4 84.74.24.4.94 74.24.4.94.84 24.4.94.84.74 4.94.84.74.34 94.84.74.34.34 84.74.34.34.44 74.34.34.44.74 34.34.44.74.64 34.44.74.64.14 44.74.64.14.34 74.64.14.34.84 64.14.34.84.84 14.34.84.84.44 34.84.84.44.34 65 65.35 65.35.85 65.35.85.85 65.35.85.85.55 35.85.85.55.15 85.85.55.15.25 85.55.15.25.75 55.15.25.75.95 15.25.75.95.65 25.75.95.65.65 75.95.65.65.35 95.65.65.35.5 65.65.35.5.15 65.35.5.15.95 35.5.15.95.55 5.15.95.55.75 15.95.55.75.85 95.55.75.85.75 55.75.85.75.15 75.85.75.15.95 85.75.15.95.5 26 26.96 26.96.46 26.96.46.6 26.96.46.6.46 96.46.6.46.16 46.6.46.16.16 6.46.16.16.86 46.16.16.86.56 16.16.86.56.56 16.86.56.56.56 86.56.56.56.16 56.56.56.16.36 56.56.16.36.76 56.16.36.76.96 16.36.76.96.96 36.76.96.96.26 76.96.96.26.26 96.96.26.26.36 96.26.26.36.66 26.26.36.66.36 26.36.66.36.36 97 97.27 97.27.97 97.27.97.67 97.27.97.67.77 27.97.67.77.47 97.67.77.47.7 67.77.47.7.47 77.47.7.47.87 47.7.47.87.37 7.47.87.37.87 47.87.37.87.77 87.37.87.77.7 37.87.77.7.57 87.77.7.57.47 77.7.57.47.47 7.57.47.47.37 57.47.47.37.27 47.47.37.27.17 47.37.27.17.7 38 38.68 38.68.78 38.68.78.8 38.68.78.8.28 68.78.8.28.98 78.8.28.98.78 8.28.98.78.58 28.98.78.58.98 98.78.58.98.8 78.58.98.8.88 58.98.8.88.8 98.8.88.8.58 8.88.8.58.58 88.8.58.58.58 8.58.58.58.38 99 99.89 99.89.59 99.89.59.39 99.89.59.39.99 89.59.39.99.29 59.39.99.29.59 39.99.29.59.89 99.29.59.89.89 29.59.89.89.29 59.89.89.29.9 89.89.29.9.79 89.29.9.79.49 29.9.79.49.59 9.79.49.59.29 79.49.59.29.59 49.59.29.59.19 59.29.59.19.39 29.59.19.39.9 59.19.39.9.9 19.39.9.9.99 39.9.9.99.69 9.9.99.69.39} +} {90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 40.30.80.20.90 + 30.80.20.90.60 80.20.90.60.70 20.90.60.70.80 90.60.70.80.90 + 60.70.80.90.30 70.80.90.30.50 80.90.30.50.10 90.30.50.10.30 81 + 81.91 81.91.61 81.91.61.91 81.91.61.91.91 91.61.91.91.1 + 61.91.91.1.81 91.91.1.81.41 91.1.81.41.61 1.81.41.61.1 + 81.41.61.1.21 41.61.1.21.11 61.1.21.11.51 1.21.11.51.41 + 21.11.51.41.31 11.51.41.31.31 51.41.31.31.11 41.31.31.11.81 + 31.31.11.81.91 31.11.81.91.91 11.81.91.91.21 62 62.12 62.12.32 + 62.12.32.22 62.12.32.22.42 12.32.22.42.2 32.22.42.2.72 + 22.42.2.72.12 42.2.72.12.22 2.72.12.22.2 72.12.22.2.72 + 12.22.2.72.72 22.2.72.72.12 2.72.72.12.62 72.72.12.62.52 + 72.12.62.52.82 93 93.23 93.23.93 93.23.93.43 93.23.93.43.3 + 23.93.43.3.43 93.43.3.43.33 43.3.43.33.53 3.43.33.53.63 + 43.33.53.63.73 33.53.63.73.13 53.63.73.13.73 63.73.13.73.73 + 73.13.73.73.33 13.73.73.33.93 73.73.33.93.23 73.33.93.23.13 + 33.93.23.13.33 93.23.13.33.3 23.13.33.3.33 13.33.3.33.83 54 54.84 + 54.84.74 54.84.74.24 54.84.74.24.4 84.74.24.4.94 74.24.4.94.84 + 24.4.94.84.74 4.94.84.74.34 94.84.74.34.34 84.74.34.34.44 + 74.34.34.44.74 34.34.44.74.64 34.44.74.64.14 44.74.64.14.34 + 74.64.14.34.84 64.14.34.84.84 14.34.84.84.44 34.84.84.44.34 65 + 65.35 65.35.85 65.35.85.85 65.35.85.85.55 35.85.85.55.15 + 85.85.55.15.25 85.55.15.25.75 55.15.25.75.95 15.25.75.95.65 + 25.75.95.65.65 75.95.65.65.35 95.65.65.35.5 65.65.35.5.15 + 65.35.5.15.95 35.5.15.95.55 5.15.95.55.75 15.95.55.75.85 + 95.55.75.85.75 55.75.85.75.15 75.85.75.15.95 96 96.46 96.46.6 + 96.46.6.46 96.46.6.46.16 46.6.46.16.16 6.46.16.16.86 46.16.16.86.56 + 16.16.86.56.56 16.86.56.56.56 86.56.56.56.16 56.56.56.16.36 + 56.56.16.36.76 56.16.36.76.96 16.36.76.96.96 36.76.96.96.26 + 76.96.96.26.26 96.96.26.26.36 96.26.26.36.66 26.26.36.66.36 + 26.36.66.36.36 97 97.27 97.27.97 97.27.97.67 97.27.97.67.77 + 27.97.67.77.47 97.67.77.47.7 67.77.47.7.47 77.47.7.47.87 + 47.7.47.87.37 7.47.87.37.87 47.87.37.87.77 87.37.87.77.7 + 37.87.77.7.57 87.77.7.57.47 77.7.57.47.47 7.57.47.47.37 + 57.47.47.37.27 47.47.37.27.17 47.37.27.17.7 38 38.68 38.68.78 + 38.68.78.8 38.68.78.8.28 68.78.8.28.98 78.8.28.98.78 8.28.98.78.58 + 28.98.78.58.98 98.78.58.98.8 78.58.98.8.88 58.98.8.88.8 + 98.8.88.8.58 8.88.8.58.58 88.8.58.58.58 8.58.58.58.38 89 89.59 + 89.59.39 89.59.39.99 89.59.39.99.29 59.39.99.29.59 39.99.29.59.89 + 99.29.59.89.89 29.59.89.89.29 59.89.89.29.9 89.89.29.9.79 + 89.29.9.79.49 29.9.79.49.59 9.79.49.59.29 79.49.59.29.59 + 49.59.29.59.19 59.29.59.19.39 29.59.19.39.9 59.19.39.9.9 + 19.39.9.9.99 39.9.9.99.69 9.9.99.69.39} do_execsql_test 1.8.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.1 0.1.1 0.1.1.2 0.1.1.2.2 1.1.2.2.2 1.2.2.2.3 2.2.2.3.3 2.2.3.3.4 2.3.3.4.5 3.3.4.5.5 3.4.5.5.6 4.5.5.6.7 5.5.6.7.7 5.6.7.7.7 6.7.7.7.8 7.7.7.8.8 7.7.8.8.8 7.8.8.8.9 8.8.8.9.9 8.8.9.9.9 8.9.9.9.10 9.9.9.10.11 9.9.10.11.11 9.10.11.11.12 10.11.11.12.12 11.11.12.12.12 11.12.12.12.13 12.12.12.13.13 12.12.13.13.14 12.13.13.14.15 13.13.14.15.15 13.14.15.15.15 14.15.15.15.16 15.15.15.16.16 15.15.16.16.16 15.16.16.16.17 16.16.16.17.19 16.16.17.19.20 16.17.19.20.21 17.19.20.21.21 19.20.21.21.22 20.21.21.22.22 21.21.22.22.23 21.22.22.23.23 22.22.23.23.23 22.23.23.23.24 23.23.23.24.25 23.23.24.25.26 23.24.25.26.26 24.25.26.26.26 25.26.26.26.27 26.26.26.27.27 26.26.27.27.28 26.27.27.28.29 27.27.28.29.29 27.28.29.29.29 28.29.29.29.30 29.29.29.30.30 29.29.30.30.30 29.30.30.30.31 30.30.30.31.31 30.30.31.31.32 30.31.31.32.33 31.31.32.33.33 31.32.33.33.33 32.33.33.33.33 33.33.33.33.33 33.33.33.33.34 33.33.33.34.34 33.33.34.34.34 33.34.34.34.34 34.34.34.34.35 34.34.34.35.35 34.34.35.35.36 34.35.35.36.36 35.35.36.36.36 35.36.36.36.36 36.36.36.36.37 36.36.36.37.37 36.36.37.37.38 36.37.37.38.38 37.37.38.38.39 37.38.38.39.39 38.38.39.39.39 38.39.39.39.40 39.39.39.40.41 39.39.40.41.41 39.40.41.41.41 40.41.41.41.42 41.41.41.42.43 41.41.42.43.43 41.42.43.43.44 42.43.43.44.44 43.43.44.44.46 43.44.44.46.46 44.44.46.46.47 44.46.46.47.47 46.46.47.47.47 46.47.47.47.47 47.47.47.47.49 47.47.47.49.50 47.47.49.50.51 47.49.50.51.52 49.50.51.52.53 50.51.52.53.54 51.52.53.54.55 52.53.54.55.55 53.54.55.55.56 54.55.55.56.56 55.55.56.56.56 55.56.56.56.57 56.56.56.57.58 56.56.57.58.58 56.57.58.58.58 57.58.58.58.58 58.58.58.58.59 58.58.58.59.59 58.58.59.59.59 58.59.59.59.59 59.59.59.59.60 59.59.59.60.61 59.59.60.61.61 59.60.61.61.62 60.61.61.62.62 61.61.62.62.63 61.62.62.63.64 62.62.63.64.65 62.63.64.65.65 63.64.65.65.65 64.65.65.65.66 65.65.65.66.67 65.65.66.67.68 65.66.67.68.69 66.67.68.69.70 67.68.69.70.72 68.69.70.72.72 69.70.72.72.72 70.72.72.72.73 72.72.72.73.73 72.72.73.73.73 72.73.73.73.74 73.73.73.74.74 73.73.74.74.74 73.74.74.74.74 74.74.74.74.74 74.74.74.74.75 74.74.74.75.75 74.74.75.75.75 74.75.75.75.76 75.75.75.76.77 75.75.76.77.77 75.76.77.77.78 76.77.77.78.78 77.77.78.78.79 77.78.78.79.80 78.78.79.80.80 78.79.80.80.81 79.80.80.81.81 80.80.81.81.81 80.81.81.81.82 81.81.81.82.83 81.81.82.83.84 81.82.83.84.84 82.83.84.84.84 83.84.84.84.84 84.84.84.84.85 84.84.84.85.85 84.84.85.85.85 84.85.85.85.86 85.85.85.86.87 85.85.86.87.87 85.86.87.87.88 86.87.87.88.89 87.87.88.89.89 87.88.89.89.89 88.89.89.89.90 89.89.89.90.90 89.89.90.90.90 89.90.90.90.91 90.90.90.91.91 90.90.91.91.91 90.91.91.91.91 91.91.91.91.91 91.91.91.91.93 91.91.91.93.93 91.91.93.93.93 91.93.93.93.94 93.93.93.94.95 93.93.94.95.95 93.94.95.95.95 94.95.95.95.96 95.95.95.96.96 95.95.96.96.96 95.96.96.96.97 96.96.96.97.97 96.96.97.97.98 96.97.97.98.98 97.97.98.98.99 97.98.98.99.99 98.98.99.99.99} +} {1 1.1 1.1.2 1.1.2.2 1.1.2.2.3 1.2.2.3.3 2.2.3.3.4 2.3.3.4.5 + 3.3.4.5.6 3.4.5.6.7 4.5.6.7.7 5.6.7.7.7 6.7.7.7.8 7.7.7.8.8 + 7.7.8.8.8 7.8.8.8.9 8.8.8.9.9 8.8.9.9.9 8.9.9.9.10 9.9.9.10.11 + 9.9.10.11.11 9.10.11.11.12 10.11.11.12.12 11.11.12.12.12 + 11.12.12.12.13 12.12.12.13.13 12.12.13.13.14 12.13.13.14.15 + 13.13.14.15.15 13.14.15.15.15 14.15.15.15.16 15.15.15.16.16 + 15.15.16.16.16 15.16.16.16.17 16.16.16.17.19 16.16.17.19.20 + 16.17.19.20.21 17.19.20.21.21 19.20.21.21.22 20.21.21.22.22 + 21.21.22.22.23 21.22.22.23.23 22.22.23.23.24 22.23.23.24.25 + 23.23.24.25.26 23.24.25.26.26 24.25.26.26.27 25.26.26.27.27 + 26.26.27.27.28 26.27.27.28.29 27.27.28.29.29 27.28.29.29.29 + 28.29.29.29.30 29.29.29.30.30 29.29.30.30.30 29.30.30.30.31 + 30.30.30.31.31 30.30.31.31.32 30.31.31.32.33 31.31.32.33.33 + 31.32.33.33.33 32.33.33.33.33 33.33.33.33.34 33.33.33.34.34 + 33.33.34.34.34 33.34.34.34.34 34.34.34.34.35 34.34.34.35.35 + 34.34.35.35.36 34.35.35.36.36 35.35.36.36.36 35.36.36.36.36 + 36.36.36.36.37 36.36.36.37.37 36.36.37.37.38 36.37.37.38.38 + 37.37.38.38.39 37.38.38.39.39 38.38.39.39.39 38.39.39.39.40 + 39.39.39.40.41 39.39.40.41.41 39.40.41.41.42 40.41.41.42.43 + 41.41.42.43.43 41.42.43.43.44 42.43.43.44.44 43.43.44.44.46 + 43.44.44.46.46 44.44.46.46.47 44.46.46.47.47 46.46.47.47.47 + 46.47.47.47.47 47.47.47.47.49 47.47.47.49.50 47.47.49.50.51 + 47.49.50.51.52 49.50.51.52.53 50.51.52.53.54 51.52.53.54.55 + 52.53.54.55.55 53.54.55.55.56 54.55.55.56.56 55.55.56.56.56 + 55.56.56.56.57 56.56.56.57.58 56.56.57.58.58 56.57.58.58.58 + 57.58.58.58.58 58.58.58.58.59 58.58.58.59.59 58.58.59.59.59 + 58.59.59.59.59 59.59.59.59.60 59.59.59.60.61 59.59.60.61.61 + 59.60.61.61.62 60.61.61.62.62 61.61.62.62.63 61.62.62.63.64 + 62.62.63.64.65 62.63.64.65.65 63.64.65.65.65 64.65.65.65.66 + 65.65.65.66.67 65.65.66.67.68 65.66.67.68.69 66.67.68.69.70 + 67.68.69.70.72 68.69.70.72.72 69.70.72.72.72 70.72.72.72.73 + 72.72.72.73.73 72.72.73.73.73 72.73.73.73.74 73.73.73.74.74 + 73.73.74.74.74 73.74.74.74.75 74.74.74.75.75 74.74.75.75.75 + 74.75.75.75.76 75.75.75.76.77 75.75.76.77.77 75.76.77.77.78 + 76.77.77.78.78 77.77.78.78.79 77.78.78.79.80 78.78.79.80.80 + 78.79.80.80.81 79.80.80.81.81 80.80.81.81.81 80.81.81.81.82 + 81.81.81.82.83 81.81.82.83.84 81.82.83.84.84 82.83.84.84.84 + 83.84.84.84.84 84.84.84.84.85 84.84.84.85.85 84.84.85.85.85 + 84.85.85.85.86 85.85.85.86.87 85.85.86.87.87 85.86.87.87.88 + 86.87.87.88.89 87.87.88.89.89 87.88.89.89.89 88.89.89.89.90 + 89.89.89.90.90 89.89.90.90.90 89.90.90.90.91 90.90.90.91.91 + 90.90.91.91.91 90.91.91.91.91 91.91.91.91.91 91.91.91.91.93 + 91.91.91.93.93 91.91.93.93.93 91.93.93.93.94 93.93.93.94.95 + 93.93.94.95.95 93.94.95.95.95 94.95.95.95.96 95.95.95.96.96 + 95.95.96.96.96 95.96.96.96.97 96.96.96.97.97 96.96.97.97.98 + 96.97.97.98.98 97.97.98.98.99 97.98.98.99.99} do_execsql_test 1.8.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.10 0.10.20 0.10.20.30 0.10.20.30.30 10.20.30.30.30 20.30.30.30.40 30.30.30.40.50 30.30.40.50.60 30.40.50.60.70 40.50.60.70.80 50.60.70.80.80 60.70.80.80.90 70.80.80.90.90 80.80.90.90.90 1 1.1 1.1.11 1.1.11.11 1.1.11.11.21 1.11.11.21.21 11.11.21.21.31 11.21.21.31.31 21.21.31.31.41 21.31.31.41.41 31.31.41.41.41 31.41.41.41.51 41.41.41.51.61 41.41.51.61.61 41.51.61.61.81 51.61.61.81.81 61.61.81.81.81 61.81.81.81.91 81.81.81.91.91 81.81.91.91.91 81.91.91.91.91 91.91.91.91.91 2 2.2 2.2.2 2.2.2.12 2.2.2.12.12 2.2.12.12.12 2.12.12.12.22 12.12.12.22.22 12.12.22.22.32 12.22.22.32.42 22.22.32.42.52 22.32.42.52.62 32.42.52.62.62 42.52.62.62.72 52.62.62.72.72 62.62.72.72.72 62.72.72.72.82 3 3.3 3.3.13 3.3.13.13 3.3.13.13.23 3.13.13.23.23 13.13.23.23.23 13.23.23.23.33 23.23.23.33.33 23.23.33.33.33 23.33.33.33.33 33.33.33.33.33 33.33.33.33.43 33.33.33.43.43 33.33.43.43.53 33.43.43.53.63 43.43.53.63.73 43.53.63.73.73 53.63.73.73.73 63.73.73.73.83 73.73.73.83.93 73.73.83.93.93 73.83.93.93.93 4 4.14 4.14.24 4.14.24.34 4.14.24.34.34 14.24.34.34.34 24.34.34.34.34 34.34.34.34.44 34.34.34.44.44 34.34.44.44.54 34.44.44.54.64 44.44.54.64.74 44.54.64.74.74 54.64.74.74.74 64.74.74.74.74 74.74.74.74.74 74.74.74.74.84 74.74.74.84.84 74.74.84.84.84 74.84.84.84.84 84.84.84.84.94 5 5.5 5.5.15 5.5.15.15 5.5.15.15.15 5.15.15.15.25 15.15.15.25.35 15.15.25.35.35 15.25.35.35.55 25.35.35.55.55 35.35.55.55.65 35.55.55.65.65 55.55.65.65.65 55.65.65.65.75 65.65.65.75.75 65.65.75.75.75 65.75.75.75.85 75.75.75.85.85 75.75.85.85.85 75.85.85.85.95 85.85.85.95.95 85.85.95.95.95 6 6.16 6.16.16 6.16.16.16 6.16.16.16.26 16.16.16.26.26 16.16.26.26.26 16.26.26.26.36 26.26.26.36.36 26.26.36.36.36 26.36.36.36.36 36.36.36.36.46 36.36.36.46.46 36.36.46.46.56 36.46.46.56.56 46.46.56.56.56 46.56.56.56.66 56.56.56.66.76 56.56.66.76.86 56.66.76.86.96 66.76.86.96.96 76.86.96.96.96 7 7.7 7.7.7 7.7.7.17 7.7.7.17.27 7.7.17.27.27 7.17.27.27.37 17.27.27.37.37 27.27.37.37.47 27.37.37.47.47 37.37.47.47.47 37.47.47.47.47 47.47.47.47.57 47.47.47.57.67 47.47.57.67.77 47.57.67.77.77 57.67.77.77.87 67.77.77.87.87 77.77.87.87.97 77.87.87.97.97 8 8.8 8.8.8 8.8.8.28 8.8.8.28.38 8.8.28.38.38 8.28.38.38.58 28.38.38.58.58 38.38.58.58.58 38.58.58.58.58 58.58.58.58.68 58.58.58.68.78 58.58.68.78.78 58.68.78.78.88 68.78.78.88.98 78.78.88.98.98 9 9.9 9.9.9 9.9.9.19 9.9.9.19.29 9.9.19.29.29 9.19.29.29.29 19.29.29.29.39 29.29.29.39.39 29.29.39.39.39 29.39.39.39.49 39.39.39.49.59 39.39.49.59.59 39.49.59.59.59 49.59.59.59.59 59.59.59.59.69 59.59.59.69.79 59.59.69.79.89 59.69.79.89.89 69.79.89.89.89 79.89.89.89.99 89.89.89.99.99 89.89.99.99.99} +} {10 10.20 10.20.30 10.20.30.30 10.20.30.30.30 20.30.30.30.40 + 30.30.30.40.50 30.30.40.50.60 30.40.50.60.70 40.50.60.70.80 + 50.60.70.80.80 60.70.80.80.90 70.80.80.90.90 80.80.90.90.90 1 1.1 + 1.1.11 1.1.11.11 1.1.11.11.21 1.11.11.21.21 11.11.21.21.31 + 11.21.21.31.31 21.21.31.31.41 21.31.31.41.41 31.31.41.41.51 + 31.41.41.51.61 41.41.51.61.61 41.51.61.61.81 51.61.61.81.81 + 61.61.81.81.81 61.81.81.81.91 81.81.81.91.91 81.81.91.91.91 + 81.91.91.91.91 91.91.91.91.91 2 2.2 2.2.12 2.2.12.12 + 2.2.12.12.12 2.12.12.12.22 12.12.12.22.22 12.12.22.22.32 + 12.22.22.32.42 22.22.32.42.52 22.32.42.52.62 32.42.52.62.62 + 42.52.62.62.72 52.62.62.72.72 62.62.72.72.72 62.72.72.72.82 3 3.3 + 3.3.13 3.3.13.13 3.3.13.13.23 3.13.13.23.23 13.13.23.23.33 + 13.23.23.33.33 23.23.33.33.33 23.33.33.33.33 33.33.33.33.43 + 33.33.33.43.43 33.33.43.43.53 33.43.43.53.63 43.43.53.63.73 + 43.53.63.73.73 53.63.73.73.73 63.73.73.73.83 73.73.73.83.93 + 73.73.83.93.93 73.83.93.93.93 4 4.14 4.14.24 4.14.24.34 + 4.14.24.34.34 14.24.34.34.34 24.34.34.34.34 34.34.34.34.44 + 34.34.34.44.44 34.34.44.44.54 34.44.44.54.64 44.44.54.64.74 + 44.54.64.74.74 54.64.74.74.74 64.74.74.74.84 74.74.74.84.84 + 74.74.84.84.84 74.84.84.84.84 84.84.84.84.94 5 5.15 5.15.15 + 5.15.15.15 5.15.15.15.25 15.15.15.25.35 15.15.25.35.35 + 15.25.35.35.55 25.35.35.55.55 35.35.55.55.65 35.55.55.65.65 + 55.55.65.65.65 55.65.65.65.75 65.65.65.75.75 65.65.75.75.75 + 65.75.75.75.85 75.75.75.85.85 75.75.85.85.85 75.85.85.85.95 + 85.85.85.95.95 85.85.95.95.95 6 6.16 6.16.16 6.16.16.16 + 6.16.16.16.26 16.16.16.26.26 16.16.26.26.36 16.26.26.36.36 + 26.26.36.36.36 26.36.36.36.36 36.36.36.36.46 36.36.36.46.46 + 36.36.46.46.56 36.46.46.56.56 46.46.56.56.56 46.56.56.56.66 + 56.56.56.66.76 56.56.66.76.86 56.66.76.86.96 66.76.86.96.96 + 76.86.96.96.96 7 7.7 7.7.7 7.7.7.17 7.7.7.17.27 7.7.17.27.27 + 7.17.27.27.37 17.27.27.37.37 27.27.37.37.47 27.37.37.47.47 + 37.37.47.47.47 37.47.47.47.47 47.47.47.47.57 47.47.47.57.67 + 47.47.57.67.77 47.57.67.77.77 57.67.77.77.87 67.77.77.87.87 + 77.77.87.87.97 77.87.87.97.97 8 8.8 8.8.8 8.8.8.28 8.8.8.28.38 + 8.8.28.38.38 8.28.38.38.58 28.38.38.58.58 38.38.58.58.58 + 38.58.58.58.58 58.58.58.58.68 58.58.58.68.78 58.58.68.78.78 + 58.68.78.78.88 68.78.78.88.98 78.78.88.98.98 9 9.9 9.9.9 + 9.9.9.19 9.9.9.19.29 9.9.19.29.29 9.19.29.29.29 19.29.29.29.39 + 29.29.29.39.39 29.29.39.39.39 29.39.39.39.49 39.39.39.49.59 + 39.39.49.59.59 39.49.59.59.59 49.59.59.59.59 59.59.59.59.69 + 59.59.59.69.79 59.59.69.79.89 59.69.79.89.89 69.79.89.89.89 + 79.89.89.89.99 89.89.89.99.99} do_execsql_test 1.8.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2 -} {0 0.90 0.90.40 0.90.40.30 0.90.40.30.80 90.40.30.80.20 40.30.80.20.90 30.80.20.90.60 80.20.90.60.70 20.90.60.70.80 90.60.70.80.90 60.70.80.90.30 70.80.90.30.50 80.90.30.50.10 90.30.50.10.30 30.50.10.30.41 50.10.30.41.81 10.30.41.81.91 30.41.81.91.61 41.81.91.61.91 81.91.61.91.91 91.61.91.91.1 61.91.91.1.81 91.91.1.81.41 91.1.81.41.61 1.81.41.61.1 81.41.61.1.21 41.61.1.21.11 61.1.21.11.51 1.21.11.51.41 21.11.51.41.31 11.51.41.31.31 51.41.31.31.11 41.31.31.11.81 31.31.11.81.91 31.11.81.91.91 11.81.91.91.21 81.91.91.21.2 91.91.21.2.62 91.21.2.62.12 21.2.62.12.32 2.62.12.32.22 62.12.32.22.42 12.32.22.42.2 32.22.42.2.72 22.42.2.72.12 42.2.72.12.22 2.72.12.22.2 72.12.22.2.72 12.22.2.72.72 22.2.72.72.12 2.72.72.12.62 72.72.12.62.52 72.12.62.52.82 12.62.52.82.23 62.52.82.23.33 52.82.23.33.93 82.23.33.93.23 23.33.93.23.93 33.93.23.93.43 93.23.93.43.3 23.93.43.3.43 93.43.3.43.33 43.3.43.33.53 3.43.33.53.63 43.33.53.63.73 33.53.63.73.13 53.63.73.13.73 63.73.13.73.73 73.13.73.73.33 13.73.73.33.93 73.73.33.93.23 73.33.93.23.13 33.93.23.13.33 93.23.13.33.3 23.13.33.3.33 13.33.3.33.83 33.3.33.83.74 3.33.83.74.74 33.83.74.74.54 83.74.74.54.84 74.74.54.84.74 74.54.84.74.24 54.84.74.24.4 84.74.24.4.94 74.24.4.94.84 24.4.94.84.74 4.94.84.74.34 94.84.74.34.34 84.74.34.34.44 74.34.34.44.74 34.34.44.74.64 34.44.74.64.14 44.74.64.14.34 74.64.14.34.84 64.14.34.84.84 14.34.84.84.44 34.84.84.44.34 84.84.44.34.65 84.44.34.65.35 44.34.65.35.85 34.65.35.85.85 65.35.85.85.55 35.85.85.55.15 85.85.55.15.25 85.55.15.25.75 55.15.25.75.95 15.25.75.95.65 25.75.95.65.65 75.95.65.65.35 95.65.65.35.5 65.65.35.5.15 65.35.5.15.95 35.5.15.95.55 5.15.95.55.75 15.95.55.75.85 95.55.75.85.75 55.75.85.75.15 75.85.75.15.95 85.75.15.95.5 75.15.95.5.26 15.95.5.26.96 95.5.26.96.46 5.26.96.46.6 26.96.46.6.46 96.46.6.46.16 46.6.46.16.16 6.46.16.16.86 46.16.16.86.56 16.16.86.56.56 16.86.56.56.56 86.56.56.56.16 56.56.56.16.36 56.56.16.36.76 56.16.36.76.96 16.36.76.96.96 36.76.96.96.26 76.96.96.26.26 96.96.26.26.36 96.26.26.36.66 26.26.36.66.36 26.36.66.36.36 36.66.36.36.97 66.36.36.97.27 36.36.97.27.97 36.97.27.97.67 97.27.97.67.77 27.97.67.77.47 97.67.77.47.7 67.77.47.7.47 77.47.7.47.87 47.7.47.87.37 7.47.87.37.87 47.87.37.87.77 87.37.87.77.7 37.87.77.7.57 87.77.7.57.47 77.7.57.47.47 7.57.47.47.37 57.47.47.37.27 47.47.37.27.17 47.37.27.17.7 37.27.17.7.38 27.17.7.38.68 17.7.38.68.78 7.38.68.78.8 38.68.78.8.28 68.78.8.28.98 78.8.28.98.78 8.28.98.78.58 28.98.78.58.98 98.78.58.98.8 78.58.98.8.88 58.98.8.88.8 98.8.88.8.58 8.88.8.58.58 88.8.58.58.58 8.58.58.58.38 58.58.58.38.99 58.58.38.99.89 58.38.99.89.59 38.99.89.59.39 99.89.59.39.99 89.59.39.99.29 59.39.99.29.59 39.99.29.59.89 99.29.59.89.89 29.59.89.89.29 59.89.89.29.9 89.89.29.9.79 89.29.9.79.49 29.9.79.49.59 9.79.49.59.29 79.49.59.29.59 49.59.29.59.19 59.29.59.19.39 29.59.19.39.9 59.19.39.9.9 19.39.9.9.99 39.9.9.99.69 9.9.99.69.39} +} {90 90.40 90.40.30 90.40.30.80 90.40.30.80.20 40.30.80.20.90 + 30.80.20.90.60 80.20.90.60.70 20.90.60.70.80 90.60.70.80.90 + 60.70.80.90.30 70.80.90.30.50 80.90.30.50.10 90.30.50.10.30 + 30.50.10.30.81 50.10.30.81.91 10.30.81.91.61 30.81.91.61.91 + 81.91.61.91.91 91.61.91.91.1 61.91.91.1.81 91.91.1.81.41 + 91.1.81.41.61 1.81.41.61.1 81.41.61.1.21 41.61.1.21.11 + 61.1.21.11.51 1.21.11.51.41 21.11.51.41.31 11.51.41.31.31 + 51.41.31.31.11 41.31.31.11.81 31.31.11.81.91 31.11.81.91.91 + 11.81.91.91.21 81.91.91.21.62 91.91.21.62.12 91.21.62.12.32 + 21.62.12.32.22 62.12.32.22.42 12.32.22.42.2 32.22.42.2.72 + 22.42.2.72.12 42.2.72.12.22 2.72.12.22.2 72.12.22.2.72 + 12.22.2.72.72 22.2.72.72.12 2.72.72.12.62 72.72.12.62.52 + 72.12.62.52.82 12.62.52.82.93 62.52.82.93.23 52.82.93.23.93 + 82.93.23.93.43 93.23.93.43.3 23.93.43.3.43 93.43.3.43.33 + 43.3.43.33.53 3.43.33.53.63 43.33.53.63.73 33.53.63.73.13 + 53.63.73.13.73 63.73.13.73.73 73.13.73.73.33 13.73.73.33.93 + 73.73.33.93.23 73.33.93.23.13 33.93.23.13.33 93.23.13.33.3 + 23.13.33.3.33 13.33.3.33.83 33.3.33.83.54 3.33.83.54.84 + 33.83.54.84.74 83.54.84.74.24 54.84.74.24.4 84.74.24.4.94 + 74.24.4.94.84 24.4.94.84.74 4.94.84.74.34 94.84.74.34.34 + 84.74.34.34.44 74.34.34.44.74 34.34.44.74.64 34.44.74.64.14 + 44.74.64.14.34 74.64.14.34.84 64.14.34.84.84 14.34.84.84.44 + 34.84.84.44.34 84.84.44.34.65 84.44.34.65.35 44.34.65.35.85 + 34.65.35.85.85 65.35.85.85.55 35.85.85.55.15 85.85.55.15.25 + 85.55.15.25.75 55.15.25.75.95 15.25.75.95.65 25.75.95.65.65 + 75.95.65.65.35 95.65.65.35.5 65.65.35.5.15 65.35.5.15.95 + 35.5.15.95.55 5.15.95.55.75 15.95.55.75.85 95.55.75.85.75 + 55.75.85.75.15 75.85.75.15.95 85.75.15.95.96 75.15.95.96.46 + 15.95.96.46.6 95.96.46.6.46 96.46.6.46.16 46.6.46.16.16 + 6.46.16.16.86 46.16.16.86.56 16.16.86.56.56 16.86.56.56.56 + 86.56.56.56.16 56.56.56.16.36 56.56.16.36.76 56.16.36.76.96 + 16.36.76.96.96 36.76.96.96.26 76.96.96.26.26 96.96.26.26.36 + 96.26.26.36.66 26.26.36.66.36 26.36.66.36.36 36.66.36.36.97 + 66.36.36.97.27 36.36.97.27.97 36.97.27.97.67 97.27.97.67.77 + 27.97.67.77.47 97.67.77.47.7 67.77.47.7.47 77.47.7.47.87 + 47.7.47.87.37 7.47.87.37.87 47.87.37.87.77 87.37.87.77.7 + 37.87.77.7.57 87.77.7.57.47 77.7.57.47.47 7.57.47.47.37 + 57.47.47.37.27 47.47.37.27.17 47.37.27.17.7 37.27.17.7.38 + 27.17.7.38.68 17.7.38.68.78 7.38.68.78.8 38.68.78.8.28 + 68.78.8.28.98 78.8.28.98.78 8.28.98.78.58 28.98.78.58.98 + 98.78.58.98.8 78.58.98.8.88 58.98.8.88.8 98.8.88.8.58 8.88.8.58.58 + 88.8.58.58.58 8.58.58.58.38 58.58.58.38.89 58.58.38.89.59 + 58.38.89.59.39 38.89.59.39.99 89.59.39.99.29 59.39.99.29.59 + 39.99.29.59.89 99.29.59.89.89 29.59.89.89.29 59.89.89.29.9 + 89.89.29.9.79 89.29.9.79.49 29.9.79.49.59 9.79.49.59.29 + 79.49.59.29.59 49.59.29.59.19 59.29.59.19.39 29.59.19.39.9 + 59.19.39.9.9 19.39.9.9.99 39.9.9.99.69 9.9.99.69.39} do_execsql_test 1.8.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.8.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.8.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.8.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.8.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) -} {1 {} 2 74 3 74 4 74.74 5 74.74 5 74.74.99 5 74.99 5 74.99.33 5 99.33 5 99.33.89 5 33.89 5 33.89.96 5 89.96 5 89.96.38 5 96.38 5 96.38.39 5 38.39 5 38.39.91 5 39.91 5 39.91.6 5 91.6 5 91.6.97 5 6.97 5 6.97.46 5 97.46 5 97.46.54 5 46.54 5 46.54.8 5 54.8 5 54.8.29 5 8.29 5 8.29.84 5 29.84 5 29.84.23 5 84.23 5 84.23.16 5 23.16 5 23.16.65 5 16.65 5 16.65.47 5 65.47 5 65.47.86 5 47.86 5 47.86.61 5 86.61 5 86.61.85 5 61.85 5 61.85.85 5 85.85 5 85.85.59 5 85.59 5 85.59.32 5 59.32 5 59.32.3 5 32.3 5 32.3.22 5 3.22 5 3.22.55 5 22.55 5 22.55.28 5 55.28 5 55.28.25 5 28.25 5 28.25.1 5 25.1 5 25.1.40 5 1.40 5 1.40.56 5 40.56 5 40.56.75 5 56.75 5 56.75.89 5 75.89 5 75.89.76 5 89.76 5 89.76.4 5 76.4 5 76.4.42 5 4.42 5 4.42.78 5 42.78 5 42.78.29 5 78.29 5 78.29.63 5 29.63 5 29.63.87 5 63.87 5 63.87.80 5 87.80 5 87.80.72 5 80.72 5 80.72.9 5 72.9 5 72.9.73 5 9.73 5 9.73.65 5 73.65 5 73.65.58 5 65.58 5 65.58.98 5 58.98 5 58.98.21 5 98.21 5 98.21.65 5 21.65 5 21.65.5 5 65.5 5 65.5.11 5 5.11 5 5.11.87 5 11.87 5 11.87.12 5 87.12 5 87.12.20 5 12.20 5 12.20.31 5 20.31 5 20.31.95 5 31.95 5 31.95.73 5 95.73 5 95.73.88 5 73.88 5 73.88.8 5 88.8 5 88.8.49 5 8.49 5 8.49.90 5 49.90 5 49.90.96 5 90.96 5 90.96.55 5 96.55 5 96.55.77 5 55.77 5 55.77.2 5 77.2 5 77.2.85 5 2.85 5 2.85.74 5 85.74 5 85.74.70 5 74.70 5 74.70.19 5 70.19 5 70.19.26 5 19.26 5 19.26.47 5 26.47 5 26.47.90 5 47.90 5 47.90.58 5 90.58 5 90.58.9 5 58.9 5 58.9.72 5 9.72 5 9.72.33 5 72.33 5 72.33.75 5 33.75 5 33.75.81 5 75.81 5 75.81.23 5 81.23 5 81.23.13 5 23.13 5 23.13.14 5 13.14 5 13.14.91 5 14.91 5 14.91.91 5 91.91 5 91.91.15 5 91.15 5 91.15.36 5 15.36 5 15.36.3 5 36.3 5 36.3.69 5 3.69 5 3.69.52 5 69.52 5 69.52.50 5 52.50 5 52.50.10 5 50.10 5 50.10.33 5 10.33 5 10.33.39 5 33.39 5 33.39.58 5 39.58 5 39.58.38 5 58.38 5 58.38.83 5 38.83 5 38.83.82 5 83.82 5 83.82.7 5 82.7} +} {1 89 2 89 3 89.96 4 89.96 5 89.96.38 5 96.38 5 96.38.39 + 5 38.39 5 38.39.91 5 39.91 5 39.91.6 5 91.6 5 91.6.97 5 6.97 + 5 6.97.46 5 97.46 5 97.46.54 5 46.54 5 46.54.8 5 54.8 5 54.8.29 + 5 8.29 5 8.29.84 5 29.84 5 29.84.23 5 84.23 5 84.23.16 5 23.16 + 5 23.16.65 5 16.65 5 16.65.47 5 65.47 5 65.47.86 5 47.86 + 5 47.86.61 5 86.61 5 86.61.85 5 61.85 5 61.85.85 5 85.85 + 5 85.85.59 5 85.59 5 85.59.32 5 59.32 5 59.32.3 5 32.3 + 5 32.3.22 5 3.22 5 3.22.55 5 22.55 5 22.55.28 5 55.28 + 5 55.28.25 5 28.25 5 28.25.1 5 25.1 5 25.1.40 5 1.40 5 1.40.56 + 5 40.56 5 40.56.75 5 56.75 5 56.75.89 5 75.89 5 75.89.76 + 5 89.76 5 89.76.4 5 76.4 5 76.4.42 5 4.42 5 4.42.78 5 42.78 + 5 42.78.29 5 78.29 5 78.29.63 5 29.63 5 29.63.87 5 63.87 + 5 63.87.80 5 87.80 5 87.80.72 5 80.72 5 80.72.9 5 72.9 + 5 72.9.73 5 9.73 5 9.73.65 5 73.65 5 73.65.58 5 65.58 + 5 65.58.98 5 58.98 5 58.98.21 5 98.21 5 98.21.65 5 21.65 + 5 21.65.5 5 65.5 5 65.5.11 5 5.11 5 5.11.87 5 11.87 5 11.87.12 + 5 87.12 5 87.12.20 5 12.20 5 12.20.31 5 20.31 5 20.31.95 + 5 31.95 5 31.95.73 5 95.73 5 95.73.88 5 73.88 5 73.88.8 5 88.8 + 5 88.8.49 5 8.49 5 8.49.90 5 49.90 5 49.90.96 5 90.96 + 5 90.96.55 5 96.55 5 96.55.77 5 55.77 5 55.77.2 5 77.2 + 5 77.2.85 5 2.85 5 2.85.74 5 85.74 5 85.74.70 5 74.70 + 5 74.70.19 5 70.19 5 70.19.26 5 19.26 5 19.26.47 5 26.47 + 5 26.47.90 5 47.90 5 47.90.58 5 90.58 5 90.58.9 5 58.9 + 5 58.9.72 5 9.72 5 9.72.33 5 72.33 5 72.33.75 5 33.75 + 5 33.75.81 5 75.81 5 75.81.23 5 81.23 5 81.23.13 5 23.13 + 5 23.13.14 5 13.14 5 13.14.91 5 14.91 5 14.91.91 5 91.91 + 5 91.91.15 5 91.15 5 91.15.36 5 15.36 5 15.36.3 5 36.3 + 5 36.3.69 5 3.69 5 3.69.52 5 69.52 5 69.52.50 5 52.50 + 5 52.50.10 5 50.10 5 50.10.33 5 10.33 5 10.33.39 5 33.39 + 5 33.39.58 5 39.58 5 39.58.38 5 58.38 5 58.38.83 5 38.83 + 5 38.83.82 5 83.82 5 83.82.7} do_execsql_test 1.8.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) -} {1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {}} +} {1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {}} do_execsql_test 1.8.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) -} {1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {}} +} {1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} + 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} + 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} + 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 {} 2 {} 3 {} 4 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {}} do_execsql_test 1.8.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) -} {1 89 2 89.6 3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 5 6.29.47.59.28 5 29.47.59.28.75 5 47.59.28.75.78 5 59.28.75.78.72 5 28.75.78.72.98 5 75.78.72.98.87 5 78.72.98.87.73 5 72.98.87.73.96 5 98.87.73.96.74 5 87.73.96.74.90 5 73.96.74.90.75 5 96.74.90.75.91 5 74.90.75.91.69 5 90.75.91.69.39 5 75.91.69.39.7 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 74 2 74.96 3 74.96.97 4 74.96.97.84 5 74.96.97.84.86 5 96.97.84.86.32 5 97.84.86.32.25 5 84.86.32.25.89 5 86.32.25.89.29 5 32.25.89.29.9 5 25.89.29.9.21 5 89.29.9.21.12 5 29.9.21.12.88 5 9.21.12.88.55 5 21.12.88.55.70 5 12.88.55.70.58 5 88.55.70.58.81 5 55.70.58.81.91 5 70.58.81.91.52 5 58.81.91.52.58 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 74 2 74.38 3 74.38.46 4 74.38.46.23 5 74.38.46.23.61 5 38.46.23.61.3 5 46.23.61.3.1 5 23.61.3.1.76 5 61.3.1.76.63 5 3.1.76.63.73 5 1.76.63.73.65 5 76.63.73.65.20 5 63.73.65.20.8 5 73.65.20.8.77 5 65.20.8.77.19 5 20.8.77.19.9 5 8.77.19.9.23 5 77.19.9.23.15 5 19.9.23.15.50 5 9.23.15.50.38 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 99 2 99.39 3 99.39.54 4 99.39.54.16 5 99.39.54.16.85 5 39.54.16.85.22 5 54.16.85.22.40 5 16.85.22.40.4 5 85.22.40.4.87 5 22.40.4.87.65 5 40.4.87.65.5 5 4.87.65.5.31 5 87.65.5.31.49 5 65.5.31.49.2 5 5.31.49.2.26 5 31.49.2.26.72 5 49.2.26.72.13 5 2.26.72.13.36 5 26.72.13.36.10 5 72.13.36.10.83 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 33 2 33.91 3 33.91.8 4 33.91.8.65 5 33.91.8.65.85 5 91.8.65.85.55 5 8.65.85.55.56 5 65.85.55.56.42 5 85.55.56.42.80 5 55.56.42.80.58 5 56.42.80.58.11 5 42.80.58.11.95 5 80.58.11.95.90 5 58.11.95.90.85 5 11.95.90.85.47 5 95.90.85.47.33 5 90.85.47.33.14 5 85.47.33.14.3 5 47.33.14.3.33 5 33.14.3.33.82 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {}} +} {1 89 2 89.6 3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 + 5 6.29.47.59.28 5 29.47.59.28.75 5 47.59.28.75.78 5 59.28.75.78.72 + 5 28.75.78.72.98 5 75.78.72.98.87 5 78.72.98.87.73 5 72.98.87.73.96 + 5 98.87.73.96.74 5 87.73.96.74.90 5 73.96.74.90.75 5 96.74.90.75.91 + 5 74.90.75.91.69 5 90.75.91.69.39 5 75.91.69.39.7 1 {} 2 {} 3 {} + 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 1 96 2 96.97 3 96.97.84 + 4 96.97.84.86 5 96.97.84.86.32 5 97.84.86.32.25 5 84.86.32.25.89 + 5 86.32.25.89.29 5 32.25.89.29.9 5 25.89.29.9.21 5 89.29.9.21.12 + 5 29.9.21.12.88 5 9.21.12.88.55 5 21.12.88.55.70 5 12.88.55.70.58 + 5 88.55.70.58.81 5 55.70.58.81.91 5 70.58.81.91.52 5 58.81.91.52.58 + 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 1 38 2 38.46 + 3 38.46.23 4 38.46.23.61 5 38.46.23.61.3 5 46.23.61.3.1 + 5 23.61.3.1.76 5 61.3.1.76.63 5 3.1.76.63.73 5 1.76.63.73.65 + 5 76.63.73.65.20 5 63.73.65.20.8 5 73.65.20.8.77 5 65.20.8.77.19 + 5 20.8.77.19.9 5 8.77.19.9.23 5 77.19.9.23.15 5 19.9.23.15.50 + 5 9.23.15.50.38 1 {} 2 {} 3 {} 4 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 1 39 2 39.54 3 39.54.16 4 39.54.16.85 5 39.54.16.85.22 + 5 54.16.85.22.40 5 16.85.22.40.4 5 85.22.40.4.87 5 22.40.4.87.65 + 5 40.4.87.65.5 5 4.87.65.5.31 5 87.65.5.31.49 5 65.5.31.49.2 + 5 5.31.49.2.26 5 31.49.2.26.72 5 49.2.26.72.13 5 2.26.72.13.36 + 5 26.72.13.36.10 5 72.13.36.10.83 1 {} 2 {} 3 {} 4 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 1 91 2 91.8 3 91.8.65 4 91.8.65.85 + 5 91.8.65.85.55 5 8.65.85.55.56 5 65.85.55.56.42 5 85.55.56.42.80 + 5 55.56.42.80.58 5 56.42.80.58.11 5 42.80.58.11.95 5 80.58.11.95.90 + 5 58.11.95.90.85 5 11.95.90.85.47 5 95.90.85.47.33 5 90.85.47.33.14 + 5 85.47.33.14.3 5 47.33.14.3.33 5 33.14.3.33.82 1 {} 2 {} 3 {} + 4 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {}} do_execsql_test 1.9.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.9.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.9.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.9.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.9.3.3 { SELECT row_number() OVER ( ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.9.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.9.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.9.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.9.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.9.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.9.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.9.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.9.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.9.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.9.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.9.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.9.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.9.6.1 { SELECT @@ -4364,7 +16126,33 @@ do_execsql_test 1.9.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.9.7.1 { @@ -4372,11 +16160,13 @@ do_test 1.9.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4387,11 +16177,13 @@ do_test 1.9.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4402,11 +16194,13 @@ do_test 1.9.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4417,11 +16211,13 @@ do_test 1.9.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4432,11 +16228,13 @@ do_test 1.9.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4447,11 +16245,13 @@ do_test 1.9.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4462,11 +16262,13 @@ do_test 1.9.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4477,11 +16279,13 @@ do_test 1.9.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4492,11 +16296,13 @@ do_test 1.9.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4507,11 +16313,13 @@ do_test 1.9.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4522,11 +16330,13 @@ do_test 1.9.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4537,11 +16347,13 @@ do_test 1.9.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4552,11 +16364,13 @@ do_test 1.9.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4567,11 +16381,13 @@ do_test 1.9.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4582,11 +16398,13 @@ do_test 1.9.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4597,11 +16415,13 @@ do_test 1.9.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4612,11 +16432,13 @@ do_test 1.9.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4627,11 +16449,13 @@ do_test 1.9.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4642,250 +16466,1020 @@ do_test 1.9.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.9.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 76 44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206} +} {99 92 108 72 52 83 55 79 109 65 26 120 119 50 + 70 103 80 124 36 96 59 124 116 110 57 51 52 130 + 103 74 87 48 128 117 105 136 131 71 133 92 109 63 + 84 109 57 146 78 147 113 74 88 150 87 110 65 121 + 106 110 124 85 145 107 161 171 150 156 80 171 120 + 109 158 114 111 136 147 87 173 124 168 173 162 132 + 101 154 167 190 161 110 156 195 198 102 123 177 169 + 140 111 180 119 160 197 152 124 121 134 146 147 132 + 213 141 193 200 210 157 132 136 175 161 218 188 226 + 191 187 208 211 179 138 144 223 196 214 170 212 202 + 163 184 172 173 195 229 240 187 210 200 163 227 228 + 223 191 252 235 225 243 172 187 202 179 179 182 231 + 261 207 263 206 189 209 212 276 181 274 249 239 234 + 213 234 269 196 271 221 210 229 235 250 223 232 229 + 279 224 280 216 207} do_execsql_test 1.9.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.9.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 65 102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276} +} {65 102 87 138 57 181 80 111 26 48 144 207 36 121 + 132 101 163 172 196 119 136 63 124 179 110 179 182 + 74 132 189 51 52 85 216 163 134 123 210 78 141 57 + 187 71 87 172 173 50 224 88 59 111 170 109 213 + 223 146 147 84 114 191 206 221 157 161 209 229 74 + 140 107 187 207 212 124 202 52 232 55 184 229 106 + 132 152 120 92 110 179 235 65 70 87 110 195 200 + 175 234 160 234 136 80 113 187 109 121 124 196 156 + 210 239 250 72 109 188 202 191 105 154 79 231 147 + 225 103 161 169 223 96 83 249 212 162 227 228 167 + 180 193 117 177 214 145 208 235 150 110 211 103 158 + 200 168 229 92 156 243 280 279 116 173 269 271 131 + 133 223 128 173 197 210 99 150 161 147 218 240 109 + 136 146 261 263 124 130 252 171 190 213 274 108 195 + 226 119 124 171 198 120 276} do_execsql_test 1.9.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 196 134 109 213 223 106 234 191 212 168 229 147 218 240 65 102 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 11 87 138 63 124 179 78 141 84 120 234 79 231 162 227 228 280 57 181 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 80 182 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 111 206 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 26 51 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 48 144 207 216 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 36 121 132 88 52 232 156 210 239 250 83 103 158 210 171 198 101 163 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276} +} {196 134 109 213 223 106 234 191 212 168 229 147 218 + 240 65 102 119 136 123 210 146 147 132 152 160 105 + 154 92 156 243 109 136 146 261 263 87 138 63 124 + 179 78 141 84 120 234 79 231 162 227 228 280 57 + 181 110 179 57 187 114 191 206 221 92 110 136 147 + 167 180 193 279 124 130 252 80 182 71 157 161 209 + 229 179 235 80 225 117 177 214 116 173 269 271 171 + 111 74 132 189 87 74 140 113 187 103 161 169 145 + 208 235 131 133 223 190 213 274 26 51 52 85 172 + 173 107 187 207 212 65 70 109 121 124 223 150 128 + 108 195 226 48 144 207 216 50 224 124 202 87 110 + 195 200 196 96 110 211 173 197 119 124 36 121 132 + 88 52 232 156 210 239 250 83 103 158 210 171 198 + 101 163 172 163 59 111 170 55 184 229 175 72 109 + 188 202 249 200 99 150 161 120 276} do_execsql_test 1.9.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {1 147 106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229} +} {147 106 109 168 134 218 191 212 229 240 213 234 196 + 223 92 109 105 136 146 65 156 132 154 102 123 119 + 160 152 146 147 136 243 261 263 210 79 63 84 78 + 120 87 162 124 141 138 227 228 179 231 234 280 124 + 57 130 92 57 110 114 136 147 167 110 180 193 191 + 252 187 179 206 181 221 279 80 116 117 71 80 171 + 173 177 157 161 179 214 225 182 209 269 271 235 229 + 103 74 131 133 113 74 87 145 190 161 169 140 111 + 132 213 187 208 223 235 189 274 108 65 26 70 51 + 52 128 109 121 124 85 107 150 195 226 172 173 187 + 223 207 212 119 50 124 96 110 87 48 110 173 124 + 197 211 144 196 195 200 202 224 216 207 52 83 103 + 36 88 171 158 156 198 121 210 132 210 239 250 232 + 99 72 55 120 59 109 150 161 111 101 200 175 188 + 170 202 163 184 163 172 276 249 229} do_execsql_test 1.9.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.9.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.9.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.9.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 19 20 21 21 22 22 23 23 24 25 26 26 27 27 28 + 29 29 29 30 30 30 31 31 32 33 33 33 33 34 34 + 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 + 40 41 41 42 43 43 44 44 46 46 47 47 47 47 49 + 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 + 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 + 67 68 69 70 72 72 72 73 73 73 74 74 74 75 75 + 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 + 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 + 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 + 96 97 97 98 98 99 99} do_execsql_test 1.9.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 2 2 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99} +} {10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 + 11 11 21 21 31 31 41 41 51 61 61 81 81 81 91 + 91 91 91 91 2 2 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 3 3 13 13 23 23 33 33 33 33 43 43 + 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 + 34 44 44 54 64 74 74 74 84 84 84 84 94 5 15 + 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 + 85 95 95 95 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 + 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 + 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89 89 89 99 99} do_execsql_test 1.9.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.9.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.9.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.9.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.9.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.9.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.9.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.9.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.9.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.9.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.9.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.9.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 19 20 21 21 22 22 23 23 24 25 26 26 27 27 28 + 29 29 29 30 30 30 31 31 32 33 33 33 33 34 34 + 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 + 40 41 41 42 43 43 44 44 46 46 47 47 47 47 49 + 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 + 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 + 67 68 69 70 72 72 72 73 73 73 74 74 74 75 75 + 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 + 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 + 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 + 96 97 97 98 98 99 99} do_execsql_test 1.9.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 2 2 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99} +} {10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 + 11 11 21 21 31 31 41 41 51 61 61 81 81 81 91 + 91 91 91 91 2 2 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 3 3 13 13 23 23 33 33 33 33 43 43 + 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 + 34 44 44 54 64 74 74 74 84 84 84 84 94 5 15 + 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 + 85 95 95 95 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 + 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 + 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89 89 89 99 99} do_execsql_test 1.9.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.9.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.9.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.9.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.9.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.9.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 {} 1 74 1 {} 1 74 1 {} 1 99 1 {} 1 33 1 {} 1 89 1 {} 1 96 1 {} 1 38 1 {} 1 39 1 {} 1 91 1 {} 1 6 1 {} 1 97 1 {} 1 46 1 {} 1 54 1 {} 1 8 1 {} 1 29 1 {} 1 84 1 {} 1 23 1 {} 1 16 1 {} 1 65 1 {} 1 47 1 {} 1 86 1 {} 1 61 1 {} 1 85 1 {} 1 85 1 {} 1 59 1 {} 1 32 1 {} 1 3 1 {} 1 22 1 {} 1 55 1 {} 1 28 1 {} 1 25 1 {} 1 1 1 {} 1 40 1 {} 1 56 1 {} 1 75 1 {} 1 89 1 {} 1 76 1 {} 1 4 1 {} 1 42 1 {} 1 78 1 {} 1 29 1 {} 1 63 1 {} 1 87 1 {} 1 80 1 {} 1 72 1 {} 1 9 1 {} 1 73 1 {} 1 65 1 {} 1 58 1 {} 1 98 1 {} 1 21 1 {} 1 65 1 {} 1 5 1 {} 1 11 1 {} 1 87 1 {} 1 12 1 {} 1 20 1 {} 1 31 1 {} 1 95 1 {} 1 73 1 {} 1 88 1 {} 1 8 1 {} 1 49 1 {} 1 90 1 {} 1 96 1 {} 1 55 1 {} 1 77 1 {} 1 2 1 {} 1 85 1 {} 1 74 1 {} 1 70 1 {} 1 19 1 {} 1 26 1 {} 1 47 1 {} 1 90 1 {} 1 58 1 {} 1 9 1 {} 1 72 1 {} 1 33 1 {} 1 75 1 {} 1 81 1 {} 1 23 1 {} 1 13 1 {} 1 14 1 {} 1 91 1 {} 1 91 1 {} 1 15 1 {} 1 36 1 {} 1 3 1 {} 1 69 1 {} 1 52 1 {} 1 50 1 {} 1 10 1 {} 1 33 1 {} 1 39 1 {} 1 58 1 {} 1 38 1 {} 1 83 1 {} 1 82 1 {} 1 7 1 {}} +} {1 89 1 {} 1 96 1 {} 1 38 1 {} 1 39 1 {} 1 91 1 {} 1 6 + 1 {} 1 97 1 {} 1 46 1 {} 1 54 1 {} 1 8 1 {} 1 29 1 {} + 1 84 1 {} 1 23 1 {} 1 16 1 {} 1 65 1 {} 1 47 1 {} 1 86 + 1 {} 1 61 1 {} 1 85 1 {} 1 85 1 {} 1 59 1 {} 1 32 1 {} + 1 3 1 {} 1 22 1 {} 1 55 1 {} 1 28 1 {} 1 25 1 {} 1 1 + 1 {} 1 40 1 {} 1 56 1 {} 1 75 1 {} 1 89 1 {} 1 76 1 {} + 1 4 1 {} 1 42 1 {} 1 78 1 {} 1 29 1 {} 1 63 1 {} 1 87 + 1 {} 1 80 1 {} 1 72 1 {} 1 9 1 {} 1 73 1 {} 1 65 1 {} + 1 58 1 {} 1 98 1 {} 1 21 1 {} 1 65 1 {} 1 5 1 {} 1 11 + 1 {} 1 87 1 {} 1 12 1 {} 1 20 1 {} 1 31 1 {} 1 95 1 {} + 1 73 1 {} 1 88 1 {} 1 8 1 {} 1 49 1 {} 1 90 1 {} 1 96 + 1 {} 1 55 1 {} 1 77 1 {} 1 2 1 {} 1 85 1 {} 1 74 1 {} + 1 70 1 {} 1 19 1 {} 1 26 1 {} 1 47 1 {} 1 90 1 {} 1 58 + 1 {} 1 9 1 {} 1 72 1 {} 1 33 1 {} 1 75 1 {} 1 81 1 {} + 1 23 1 {} 1 13 1 {} 1 14 1 {} 1 91 1 {} 1 91 1 {} 1 15 + 1 {} 1 36 1 {} 1 3 1 {} 1 69 1 {} 1 52 1 {} 1 50 1 {} + 1 10 1 {} 1 33 1 {} 1 39 1 {} 1 58 1 {} 1 38 1 {} 1 83 + 1 {} 1 82 1 {} 1 7} do_execsql_test 1.9.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {}} +} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {}} do_execsql_test 1.9.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {}} +} {1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {}} do_execsql_test 1.9.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) -} {1 89 1 6 1 29 1 47 1 59 1 28 1 75 1 78 1 72 1 98 1 87 1 73 1 96 1 74 1 90 1 75 1 91 1 69 1 39 1 7 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 74 1 96 1 97 1 84 1 86 1 32 1 25 1 89 1 29 1 9 1 21 1 12 1 88 1 55 1 70 1 58 1 81 1 91 1 52 1 58 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 74 1 38 1 46 1 23 1 61 1 3 1 1 1 76 1 63 1 73 1 65 1 20 1 8 1 77 1 19 1 9 1 23 1 15 1 50 1 38 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 99 1 39 1 54 1 16 1 85 1 22 1 40 1 4 1 87 1 65 1 5 1 31 1 49 1 2 1 26 1 72 1 13 1 36 1 10 1 83 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 33 1 91 1 8 1 65 1 85 1 55 1 56 1 42 1 80 1 58 1 11 1 95 1 90 1 85 1 47 1 33 1 14 1 3 1 33 1 82 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {}} +} {1 89 1 6 1 29 1 47 1 59 1 28 1 75 1 78 1 72 1 98 1 87 + 1 73 1 96 1 74 1 90 1 75 1 91 1 69 1 39 1 7 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 96 1 97 1 84 1 86 1 32 + 1 25 1 89 1 29 1 9 1 21 1 12 1 88 1 55 1 70 1 58 1 81 + 1 91 1 52 1 58 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 38 1 46 1 23 1 61 1 3 1 1 1 76 1 63 1 73 1 65 1 20 + 1 8 1 77 1 19 1 9 1 23 1 15 1 50 1 38 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 39 1 54 1 16 1 85 1 22 1 40 + 1 4 1 87 1 65 1 5 1 31 1 49 1 2 1 26 1 72 1 13 1 36 + 1 10 1 83 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 91 + 1 8 1 65 1 85 1 55 1 56 1 42 1 80 1 58 1 11 1 95 1 90 + 1 85 1 47 1 33 1 14 1 3 1 33 1 82 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} 1 {} + 1 {} 1 {} 1 {} 1 {}} do_execsql_test 1.10.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {96 96 96 96 96 96 96 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99} do_execsql_test 1.10.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {38 38 38 38 38 38 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1} do_execsql_test 1.10.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.10.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.10.3.3 { SELECT row_number() OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.10.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.10.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.10.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.10.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.10.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.10.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.10.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.10.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.10.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.10.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.10.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.10.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.10.6.1 { SELECT @@ -4893,7 +17487,33 @@ do_execsql_test 1.10.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.10.7.1 { @@ -4901,11 +17521,13 @@ do_test 1.10.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4916,11 +17538,13 @@ do_test 1.10.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4931,11 +17555,13 @@ do_test 1.10.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4946,11 +17572,13 @@ do_test 1.10.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4961,11 +17589,13 @@ do_test 1.10.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4976,11 +17606,13 @@ do_test 1.10.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -4991,11 +17623,13 @@ do_test 1.10.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5006,11 +17640,13 @@ do_test 1.10.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5021,11 +17657,13 @@ do_test 1.10.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5036,11 +17674,13 @@ do_test 1.10.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5051,11 +17691,13 @@ do_test 1.10.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5066,11 +17708,13 @@ do_test 1.10.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5081,11 +17725,13 @@ do_test 1.10.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5096,11 +17742,13 @@ do_test 1.10.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5111,11 +17759,13 @@ do_test 1.10.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5126,11 +17776,13 @@ do_test 1.10.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5141,11 +17793,13 @@ do_test 1.10.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5156,11 +17810,13 @@ do_test 1.10.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5171,250 +17827,2022 @@ do_test 1.10.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.10.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206 206 206 206 206} +} {52 83 55 79 109 65 26 120 119 50 70 103 80 124 + 36 96 59 124 116 110 57 51 52 130 103 74 87 48 + 128 117 105 136 131 71 133 92 109 63 84 109 57 + 146 78 147 113 74 88 150 87 110 65 121 106 110 + 124 85 145 107 161 171 150 156 80 171 120 109 158 + 114 111 136 147 87 173 124 168 173 162 132 101 154 + 167 190 161 110 156 195 198 102 123 177 169 140 111 + 180 119 160 197 152 124 121 134 146 147 132 213 141 + 193 200 210 157 132 136 175 161 218 188 226 191 187 + 208 211 179 138 144 223 196 214 170 212 202 163 184 + 172 173 195 229 240 187 210 200 163 227 228 223 191 + 252 235 225 243 172 187 202 179 179 182 231 261 207 + 263 206 189 209 212 276 181 274 249 239 234 213 234 + 269 196 271 221 210 229 235 250 223 232 229 279 224 + 280 216 207 207 207 207 207} do_execsql_test 1.10.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {168 134 218 191 212 229 240 213 234 196 223 223 223 223 223 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 210 210 210 210 78 120 87 162 124 141 138 227 228 179 231 234 280 280 280 280 280 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 279 279 279 279 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 229 229 229 229 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 206 206 206 206 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 212 212 212 212 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 207 207 207 207 88 171 158 156 198 121 210 132 210 239 250 232 232 232 232 232 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229 229 229} +} {134 218 191 212 229 240 213 234 196 223 223 223 223 + 223 146 65 156 132 154 102 123 119 160 152 146 147 + 136 243 261 263 210 210 210 210 210 120 87 162 124 + 141 138 227 228 179 231 234 280 280 280 280 280 57 + 110 114 136 147 167 110 180 193 191 252 187 179 206 + 181 221 279 279 279 279 279 80 171 173 177 157 161 + 179 214 225 182 209 269 271 235 229 229 229 229 229 + 113 74 87 145 190 161 169 140 111 132 213 187 208 + 223 235 189 274 274 274 274 274 51 52 128 109 121 + 124 85 107 150 195 226 172 173 187 223 207 212 212 + 212 212 212 110 87 48 110 173 124 197 211 144 196 + 195 200 202 224 216 207 207 207 207 207 88 171 158 + 156 198 121 210 132 210 239 250 232 232 232 232 232 + 59 109 150 161 111 101 200 175 188 170 202 163 184 + 163 172 276 249 229 229 229 229 229} do_execsql_test 1.10.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276 276 276 276 276} +} {57 181 80 111 26 48 144 207 36 121 132 101 163 + 172 196 119 136 63 124 179 110 179 182 74 132 189 + 51 52 85 216 163 134 123 210 78 141 57 187 71 87 + 172 173 50 224 88 59 111 170 109 213 223 146 147 + 84 114 191 206 221 157 161 209 229 74 140 107 187 + 207 212 124 202 52 232 55 184 229 106 132 152 120 + 92 110 179 235 65 70 87 110 195 200 175 234 160 + 234 136 80 113 187 109 121 124 196 156 210 239 250 + 72 109 188 202 191 105 154 79 231 147 225 103 161 + 169 223 96 83 249 212 162 227 228 167 180 193 117 + 177 214 145 208 235 150 110 211 103 158 200 168 229 + 92 156 243 280 279 116 173 269 271 131 133 223 128 + 173 197 210 99 150 161 147 218 240 109 136 146 261 + 263 124 130 252 171 190 213 274 108 195 226 119 124 + 171 198 120 276 276 276 276 276} do_execsql_test 1.10.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {213 223 106 234 191 212 168 229 147 218 240 240 240 240 240 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 263 263 263 263 124 179 78 141 84 120 234 79 231 162 227 228 280 280 280 280 280 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 252 252 252 252 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 171 171 171 171 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 274 274 274 274 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 226 226 226 226 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 124 124 124 124 52 232 156 210 239 250 83 103 158 210 171 198 198 198 198 198 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276 276 276 276 276} +} {223 106 234 191 212 168 229 147 218 240 240 240 240 + 240 123 210 146 147 132 152 160 105 154 92 156 243 + 109 136 146 261 263 263 263 263 263 179 78 141 84 + 120 234 79 231 162 227 228 280 280 280 280 280 57 + 187 114 191 206 221 92 110 136 147 167 180 193 279 + 124 130 252 252 252 252 252 161 209 229 179 235 80 + 225 117 177 214 116 173 269 271 171 171 171 171 171 + 87 74 140 113 187 103 161 169 145 208 235 131 133 + 223 190 213 274 274 274 274 274 172 173 107 187 207 + 212 65 70 109 121 124 223 150 128 108 195 226 226 + 226 226 226 50 224 124 202 87 110 195 200 196 96 + 110 211 173 197 119 124 124 124 124 124 52 232 156 + 210 239 250 83 103 158 210 171 198 198 198 198 198 + 59 111 170 55 184 229 175 72 109 188 202 249 200 + 99 150 161 120 276 276 276 276 276} do_execsql_test 1.10.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229 229 229} +} {134 218 191 212 229 240 213 234 196 223 92 109 105 + 136 146 65 156 132 154 102 123 119 160 152 146 147 + 136 243 261 263 210 79 63 84 78 120 87 162 124 + 141 138 227 228 179 231 234 280 124 57 130 92 57 + 110 114 136 147 167 110 180 193 191 252 187 179 206 + 181 221 279 80 116 117 71 80 171 173 177 157 161 + 179 214 225 182 209 269 271 235 229 103 74 131 133 + 113 74 87 145 190 161 169 140 111 132 213 187 208 + 223 235 189 274 108 65 26 70 51 52 128 109 121 + 124 85 107 150 195 226 172 173 187 223 207 212 119 + 50 124 96 110 87 48 110 173 124 197 211 144 196 + 195 200 202 224 216 207 52 83 103 36 88 171 158 + 156 198 121 210 132 210 239 250 232 99 72 55 120 + 59 109 150 161 111 101 200 175 188 170 202 163 184 + 163 172 276 249 229 229 229 229 229} do_execsql_test 1.10.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.10.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} 29 {} {} {} 46 62 62 {} {} 16 {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 90 74 {} 27 {} 22 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} 94 {} 23 {} 74 93 30 23 29 3 1 41 80 65 33 2 98 86 89 25 76 65 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33 99} +} {{} {} {} {} {} {} {} {} {} {} 39 {} {} {} {} + {} {} {} 91 {} {} {} {} {} 77 54 54 {} {} {} + {} 62 {} {} {} {} {} 23 {} 56 {} 97 86 {} 59 + {} 84 {} {} 78 65 {} 16 90 81 40 59 56 40 54 + {} 85 {} {} {} {} 38 {} 32 47 {} 74 35 47 98 + 96 {} 24 72 {} 29 12 46 36 53 {} 81 27 56 {} + {} 81 93 63 81 91 68 53 99 89 13 12 97 91 29 + 7 7 78 35 84 53 84 58 61 91 99 15 61 98 16 5 + 75 56 2 37 3 96 62 95 43 63 35 78 16 67 43 16 + 16 90 72 98 85 56 90 46 29 29 4 74 74 2 76 41 + 46 77 24 27 97 46 89 1 85 1 74 78 61 85 51 59 + 35 30 56 25 47 28 73 6 73 74 93 43 3 56 47 85 + 61 61 93 9 97 62} do_execsql_test 1.10.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 {} 21 {} {} {} {} 21 {} {} {} 21 12 {} {} {} {} {} 12 {} 72 {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} 73 {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 55 {} {} {} {} {} 55 {} 15 {} {} {} 16 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} 9 {} 29 29 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 91 {} 11 {} {} {} {} + 11 {} {} {} {} {} {} {} {} {} 32 {} {} {} 32 + {} {} 12 {} {} {} {} {} {} {} 43 {} {} {} {} + {} 33 {} {} {} {} {} 33 {} 43 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} 34 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 15 55 + {} {} {} {} {} 55 {} {} {} 86 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} + {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} 99 {} 9 9 {} {} {}} do_execsql_test 1.10.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 10 11 11 11 11 11 12 12 12 12 12 13 13 13 14 14 14 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 19 19 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 25 25 25 25 26 26 27 27 28 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 31 31 31 32 32 33 33 33 33 33 33 33 34 34 34 35 35 35 35 35 35 36 36 36 36 36 36 36 36 36 36 36 37 37 37 38 38 38 38 38 39 39 39 39 39 39 40 40 40 41 41 41 41 42 42 42 43 43 43 43 43 43 43 43 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47} +} {1 1 2 2 2 2 3 3 4 5 5 5 6 6 6 7 7 7 7 + 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 12 + 12 12 12 12 12 13 13 14 14 15 15 15 15 15 15 + 16 16 16 16 16 16 17 17 17 17 19 19 19 19 20 + 20 21 21 21 21 21 21 22 22 22 22 22 23 23 23 + 24 25 25 26 26 27 27 27 27 27 27 29 29 29 30 + 30 30 31 31 31 31 31 32 33 33 33 33 33 33 33 + 33 33 33 33 34 34 34 34 34 34 34 35 35 36 36 + 36 37 37 37 37 37 37 38 38 38 38 38 38 39 39 + 39 39 39 40 41 41 41 41 41 42 43 43 43 43 43 + 44 44 44 44 46 46 46 47 47 47 47 47 47 47 47 + 47 47 47 49 49 49 50 51 51 51 52 52 52 53 53 + 54 54 55 55} do_execsql_test 1.10.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 13 13 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 12 12 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 13 13 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} 31 31 30 {} {} {} 1 40 {} 50 11 81 42 40 {} 50 81 40 {} {} 50 {} 52 {} 41 81 {} 41 {} 2 30 2 81 82 53 {} 10 {} {} 81 {} 41 10 81 30 81 {} 3 3 23 94 3 61 80 {} 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 20 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 40 {} {} {} 40 41 50 {} {} 81 81 + 50 {} {} {} 41 {} 10 91 61 12 30 {} 10 61 30 + {} {} 10 {} 23 {} {} 1 {} 22 80 22 91 93 73 + {} 30 {} {} 91 {} 1 30 91 80 91 {} 43 {} 74 + 21 20 {} {} 74 21 21 2 74 33 81 21 64 64 2 21 + 93 62 14 14 3 91 11 24 55 93 93 62 90 91 55 3 + 24 14 24 91 55 15 72 60 72 61 61 34 43 43 43 + 61 12 4 15 15 51 51 12 23 12 12 25 41 25 13 + 94 12 70 12 84 32 84 94 70 33 12 12 32 41 91 + 70 22 33 84 80 31 75 84 53 75 80 84 80 53 53 + 53 22 44 63 42 95 31 63 44 44 31 90 74 52 63 + 31 63 1 42 90 90 95 3 42} do_execsql_test 1.10.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.10.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 81 + 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 + 81 81 81 81 81 62 62 62 62 62 62 62 62 62 62 + 62 62 62 62 62 62 93 93 93 93 93 93 93 93 93 + 93 93 93 93 93 93 93 93 93 93 93 93 54 54 54 + 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 + 54 65 65 65 65 65 65 65 65 65 65 65 65 65 65 + 65 65 65 65 65 65 65 96 96 96 96 96 96 96 96 + 96 96 96 96 96 96 96 96 96 96 96 96 96 97 97 + 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 + 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 + 38 38 38 38 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.10.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1} do_execsql_test 1.10.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9} +} {10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9} do_execsql_test 1.10.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90} do_execsql_test 1.10.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.10.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.10.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.10.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.10.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.10.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.10.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.10.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.10.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0.74.41.74.23 0.74.41.74.23.99 0.74.41.74.23.99.26 0.74.41.74.23.99.26.33 0.74.41.74.23.99.26.33.2 0.74.41.74.23.99.26.33.2.89 0.74.41.74.23.99.26.33.2.89.81 0.74.41.74.23.99.26.33.2.89.81.96 0.74.41.74.23.99.26.33.2.89.81.96.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5} +} {89.81.96.59.38 89.81.96.59.38.68 89.81.96.59.38.68.39 + 89.81.96.59.38.68.39.62 89.81.96.59.38.68.39.62.91 + 89.81.96.59.38.68.39.62.91.46 89.81.96.59.38.68.39.62.91.46.6 + 89.81.96.59.38.68.39.62.91.46.6.99 89.81.96.59.38.68.39.62.91.46.6.99.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7} do_execsql_test 1.10.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 0.90.40.30.80.20.90.60.70.80.90.30 0.90.40.30.80.20.90.60.70.80.90.30.50 0.90.40.30.80.20.90.60.70.80.90.30.50.10 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 41.81.91.61.91 41.81.91.61.91.91 41.81.91.61.91.91.1 41.81.91.61.91.91.1.81 41.81.91.61.91.91.1.81.41 41.81.91.61.91.91.1.81.41.61 41.81.91.61.91.91.1.81.41.61.1 41.81.91.61.91.91.1.81.41.61.1.21 41.81.91.61.91.91.1.81.41.61.1.21.11 41.81.91.61.91.91.1.81.41.61.1.21.11.51 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 2.62.12.32.22 2.62.12.32.22.42 2.62.12.32.22.42.2 2.62.12.32.22.42.2.72 2.62.12.32.22.42.2.72.12 2.62.12.32.22.42.2.72.12.22 2.62.12.32.22.42.2.72.12.22.2 2.62.12.32.22.42.2.72.12.22.2.72 2.62.12.32.22.42.2.72.12.22.2.72.72 2.62.12.32.22.42.2.72.12.22.2.72.72.12 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 23.33.93.23.93 23.33.93.23.93.43 23.33.93.23.93.43.3 23.33.93.23.93.43.3.43 23.33.93.23.93.43.3.43.33 23.33.93.23.93.43.3.43.33.53 23.33.93.23.93.43.3.43.33.53.63 23.33.93.23.93.43.3.43.33.53.63.73 23.33.93.23.93.43.3.43.33.53.63.73.13 23.33.93.23.93.43.3.43.33.53.63.73.13.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 74.74.54.84.74 74.74.54.84.74.24 74.74.54.84.74.24.4 74.74.54.84.74.24.4.94 74.74.54.84.74.24.4.94.84 74.74.54.84.74.24.4.94.84.74 74.74.54.84.74.24.4.94.84.74.34 74.74.54.84.74.24.4.94.84.74.34.34 74.74.54.84.74.24.4.94.84.74.34.34.44 74.74.54.84.74.24.4.94.84.74.34.34.44.74 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65.35.85.85.55 65.35.85.85.55.15 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 65.35.85.85.55.15.25.75.95 65.35.85.85.55.15.25.75.95.65 65.35.85.85.55.15.25.75.95.65.65 65.35.85.85.55.15.25.75.95.65.65.35 65.35.85.85.55.15.25.75.95.65.65.35.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 26.96.46.6.46 26.96.46.6.46.16 26.96.46.6.46.16.16 26.96.46.6.46.16.16.86 26.96.46.6.46.16.16.86.56 26.96.46.6.46.16.16.86.56.56 26.96.46.6.46.16.16.86.56.56.56 26.96.46.6.46.16.16.86.56.56.56.16 26.96.46.6.46.16.16.86.56.56.56.16.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 97.27.97.67.77 97.27.97.67.77.47 97.27.97.67.77.47.7 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38.68.78.8.28 38.68.78.8.28.98 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 38.68.78.8.28.98.78.58.98 38.68.78.8.28.98.78.58.98.8 38.68.78.8.28.98.78.58.98.8.88 38.68.78.8.28.98.78.58.98.8.88.8 38.68.78.8.28.98.78.58.98.8.88.8.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 99.89.59.39.99 99.89.59.39.99.29 99.89.59.39.99.29.59 99.89.59.39.99.29.59.89 99.89.59.39.99.29.59.89.89 99.89.59.39.99.29.59.89.89.29 99.89.59.39.99.29.59.89.89.29.9 99.89.59.39.99.29.59.89.89.29.9.79 99.89.59.39.99.29.59.89.89.29.9.79.49 99.89.59.39.99.29.59.89.89.29.9.79.49.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90.40.30.80.20 90.40.30.80.20.90 90.40.30.80.20.90.60 + 90.40.30.80.20.90.60.70 90.40.30.80.20.90.60.70.80 + 90.40.30.80.20.90.60.70.80.90 90.40.30.80.20.90.60.70.80.90.30 + 90.40.30.80.20.90.60.70.80.90.30.50 + 90.40.30.80.20.90.60.70.80.90.30.50.10 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 81.91.61.91.91 + 81.91.61.91.91.1 81.91.61.91.91.1.81 81.91.61.91.91.1.81.41 + 81.91.61.91.91.1.81.41.61 81.91.61.91.91.1.81.41.61.1 + 81.91.61.91.91.1.81.41.61.1.21 81.91.61.91.91.1.81.41.61.1.21.11 + 81.91.61.91.91.1.81.41.61.1.21.11.51 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 62.12.32.22.42 62.12.32.22.42.2 62.12.32.22.42.2.72 + 62.12.32.22.42.2.72.12 62.12.32.22.42.2.72.12.22 + 62.12.32.22.42.2.72.12.22.2 62.12.32.22.42.2.72.12.22.2.72 + 62.12.32.22.42.2.72.12.22.2.72.72 62.12.32.22.42.2.72.12.22.2.72.72.12 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 93.23.93.43.3 + 93.23.93.43.3.43 93.23.93.43.3.43.33 93.23.93.43.3.43.33.53 + 93.23.93.43.3.43.33.53.63 93.23.93.43.3.43.33.53.63.73 + 93.23.93.43.3.43.33.53.63.73.13 93.23.93.43.3.43.33.53.63.73.13.73 + 93.23.93.43.3.43.33.53.63.73.13.73.73 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 54.84.74.24.4 54.84.74.24.4.94 54.84.74.24.4.94.84 + 54.84.74.24.4.94.84.74 54.84.74.24.4.94.84.74.34 + 54.84.74.24.4.94.84.74.34.34 54.84.74.24.4.94.84.74.34.34.44 + 54.84.74.24.4.94.84.74.34.34.44.74 54.84.74.24.4.94.84.74.34.34.44.74.64 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65.35.85.85.55 + 65.35.85.85.55.15 65.35.85.85.55.15.25 65.35.85.85.55.15.25.75 + 65.35.85.85.55.15.25.75.95 65.35.85.85.55.15.25.75.95.65 + 65.35.85.85.55.15.25.75.95.65.65 65.35.85.85.55.15.25.75.95.65.65.35 + 65.35.85.85.55.15.25.75.95.65.65.35.5 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 96.46.6.46.16 96.46.6.46.16.16 96.46.6.46.16.16.86 + 96.46.6.46.16.16.86.56 96.46.6.46.16.16.86.56.56 + 96.46.6.46.16.16.86.56.56.56 96.46.6.46.16.16.86.56.56.56.16 + 96.46.6.46.16.16.86.56.56.56.16.36 96.46.6.46.16.16.86.56.56.56.16.36.76 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 97.27.97.67.77 97.27.97.67.77.47 97.27.97.67.77.47.7 + 97.27.97.67.77.47.7.47 97.27.97.67.77.47.7.47.87 + 97.27.97.67.77.47.7.47.87.37 97.27.97.67.77.47.7.47.87.37.87 + 97.27.97.67.77.47.7.47.87.37.87.77 97.27.97.67.77.47.7.47.87.37.87.77.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38.68.78.8.28 + 38.68.78.8.28.98 38.68.78.8.28.98.78 38.68.78.8.28.98.78.58 + 38.68.78.8.28.98.78.58.98 38.68.78.8.28.98.78.58.98.8 + 38.68.78.8.28.98.78.58.98.8.88 38.68.78.8.28.98.78.58.98.8.88.8 + 38.68.78.8.28.98.78.58.98.8.88.8.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 89.59.39.99.29 + 89.59.39.99.29.59 89.59.39.99.29.59.89 89.59.39.99.29.59.89.89 + 89.59.39.99.29.59.89.89.29 89.59.39.99.29.59.89.89.29.9 + 89.59.39.99.29.59.89.89.29.9.79 89.59.39.99.29.59.89.89.29.9.79.49 + 89.59.39.99.29.59.89.89.29.9.79.49.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.10.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0.1.1.2.2 0.1.1.2.2.2 0.1.1.2.2.2.3 0.1.1.2.2.2.3.3 0.1.1.2.2.2.3.3.4 0.1.1.2.2.2.3.3.4.5 0.1.1.2.2.2.3.3.4.5.5 0.1.1.2.2.2.3.3.4.5.5.6 0.1.1.2.2.2.3.3.4.5.5.6.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99} +} {1.1.2.2.3 1.1.2.2.3.3 1.1.2.2.3.3.4 1.1.2.2.3.3.4.5 + 1.1.2.2.3.3.4.5.6 1.1.2.2.3.3.4.5.6.7 1.1.2.2.3.3.4.5.6.7.7 + 1.1.2.2.3.3.4.5.6.7.7.7 1.1.2.2.3.3.4.5.6.7.7.7.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99} do_execsql_test 1.10.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0.10.20.30.30 0.10.20.30.30.30 0.10.20.30.30.30.40 0.10.20.30.30.30.40.50 0.10.20.30.30.30.40.50.60 0.10.20.30.30.30.40.50.60.70 0.10.20.30.30.30.40.50.60.70.80 0.10.20.30.30.30.40.50.60.70.80.80 0.10.20.30.30.30.40.50.60.70.80.80.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 1.1.11.11.21 1.1.11.11.21.21 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 1.1.11.11.21.21.31.31.41 1.1.11.11.21.21.31.31.41.41 1.1.11.11.21.21.31.31.41.41.41 1.1.11.11.21.21.31.31.41.41.41.51 1.1.11.11.21.21.31.31.41.41.41.51.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 2.2.2.12.12 2.2.2.12.12.12 2.2.2.12.12.12.22 2.2.2.12.12.12.22.22 2.2.2.12.12.12.22.22.32 2.2.2.12.12.12.22.22.32.42 2.2.2.12.12.12.22.22.32.42.52 2.2.2.12.12.12.22.22.32.42.52.62 2.2.2.12.12.12.22.22.32.42.52.62.62 2.2.2.12.12.12.22.22.32.42.52.62.62.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.23 3.3.13.13.23.23.23.33 3.3.13.13.23.23.23.33.33 3.3.13.13.23.23.23.33.33.33 3.3.13.13.23.23.23.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33 3.3.13.13.23.23.23.33.33.33.33.33.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 4.14.24.34.34 4.14.24.34.34.34 4.14.24.34.34.34.34 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 5.5.15.15.15 5.5.15.15.15.25 5.5.15.15.15.25.35 5.5.15.15.15.25.35.35 5.5.15.15.15.25.35.35.55 5.5.15.15.15.25.35.35.55.55 5.5.15.15.15.25.35.35.55.55.65 5.5.15.15.15.25.35.35.55.55.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65 5.5.15.15.15.25.35.35.55.55.65.65.65.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 6.16.16.16.26 6.16.16.16.26.26 6.16.16.16.26.26.26 6.16.16.16.26.26.26.36 6.16.16.16.26.26.26.36.36 6.16.16.16.26.26.26.36.36.36 6.16.16.16.26.26.26.36.36.36.36 6.16.16.16.26.26.26.36.36.36.36.46 6.16.16.16.26.26.26.36.36.36.36.46.46 6.16.16.16.26.26.26.36.36.36.36.46.46.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 7.7.7.17.27.27.37.37 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47.57 7.7.7.17.27.27.37.37.47.47.47.47.57.67 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 8.8.8.28.38.38.58.58 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 8.8.8.28.38.38.58.58.58.58.68.78.78 8.8.8.28.38.38.58.58.58.58.68.78.78.88 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9.9.9.19.29 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 9.9.9.19.29.29.29.39.39 9.9.9.19.29.29.29.39.39.39 9.9.9.19.29.29.29.39.39.39.49 9.9.9.19.29.29.29.39.39.39.49.59 9.9.9.19.29.29.29.39.39.39.49.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99} +} {10.20.30.30.30 10.20.30.30.30.40 10.20.30.30.30.40.50 + 10.20.30.30.30.40.50.60 10.20.30.30.30.40.50.60.70 + 10.20.30.30.30.40.50.60.70.80 10.20.30.30.30.40.50.60.70.80.80 + 10.20.30.30.30.40.50.60.70.80.80.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 1.1.11.11.21 1.1.11.11.21.21 + 1.1.11.11.21.21.31 1.1.11.11.21.21.31.31 1.1.11.11.21.21.31.31.41 + 1.1.11.11.21.21.31.31.41.41 1.1.11.11.21.21.31.31.41.41.51 + 1.1.11.11.21.21.31.31.41.41.51.61 1.1.11.11.21.21.31.31.41.41.51.61.61 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 2.2.12.12.12 + 2.2.12.12.12.22 2.2.12.12.12.22.22 2.2.12.12.12.22.22.32 + 2.2.12.12.12.22.22.32.42 2.2.12.12.12.22.22.32.42.52 + 2.2.12.12.12.22.22.32.42.52.62 2.2.12.12.12.22.22.32.42.52.62.62 + 2.2.12.12.12.22.22.32.42.52.62.62.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3.3.13.13.23 + 3.3.13.13.23.23 3.3.13.13.23.23.33 3.3.13.13.23.23.33.33 + 3.3.13.13.23.23.33.33.33 3.3.13.13.23.23.33.33.33.33 + 3.3.13.13.23.23.33.33.33.33.43 3.3.13.13.23.23.33.33.33.33.43.43 + 3.3.13.13.23.23.33.33.33.33.43.43.53 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 4.14.24.34.34 4.14.24.34.34.34 4.14.24.34.34.34.34 + 4.14.24.34.34.34.34.44 4.14.24.34.34.34.34.44.44 + 4.14.24.34.34.34.34.44.44.54 4.14.24.34.34.34.34.44.44.54.64 + 4.14.24.34.34.34.34.44.44.54.64.74 4.14.24.34.34.34.34.44.44.54.64.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 5.15.15.15.25 + 5.15.15.15.25.35 5.15.15.15.25.35.35 5.15.15.15.25.35.35.55 + 5.15.15.15.25.35.35.55.55 5.15.15.15.25.35.35.55.55.65 + 5.15.15.15.25.35.35.55.55.65.65 5.15.15.15.25.35.35.55.55.65.65.65 + 5.15.15.15.25.35.35.55.55.65.65.65.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 6.16.16.16.26 6.16.16.16.26.26 6.16.16.16.26.26.36 + 6.16.16.16.26.26.36.36 6.16.16.16.26.26.36.36.36 + 6.16.16.16.26.26.36.36.36.36 6.16.16.16.26.26.36.36.36.36.46 + 6.16.16.16.26.26.36.36.36.36.46.46 6.16.16.16.26.26.36.36.36.36.46.46.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7.7.7.17.27 + 7.7.7.17.27.27 7.7.7.17.27.27.37 7.7.7.17.27.27.37.37 + 7.7.7.17.27.27.37.37.47 7.7.7.17.27.27.37.37.47.47 + 7.7.7.17.27.27.37.37.47.47.47 7.7.7.17.27.27.37.37.47.47.47.47 + 7.7.7.17.27.27.37.37.47.47.47.47.57 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8.8.8.28.38 + 8.8.8.28.38.38 8.8.8.28.38.38.58 8.8.8.28.38.38.58.58 + 8.8.8.28.38.38.58.58.58 8.8.8.28.38.38.58.58.58.58 + 8.8.8.28.38.38.58.58.58.58.68 8.8.8.28.38.38.58.58.58.58.68.78 + 8.8.8.28.38.38.58.58.58.58.68.78.78 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9.9.9.19.29 9.9.9.19.29.29 + 9.9.9.19.29.29.29 9.9.9.19.29.29.29.39 9.9.9.19.29.29.29.39.39 + 9.9.9.19.29.29.29.39.39.39 9.9.9.19.29.29.29.39.39.39.49 + 9.9.9.19.29.29.29.39.39.39.49.59 9.9.9.19.29.29.29.39.39.39.49.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99} do_execsql_test 1.10.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2 -} {0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 0.90.40.30.80.20.90.60 0.90.40.30.80.20.90.60.70 0.90.40.30.80.20.90.60.70.80 0.90.40.30.80.20.90.60.70.80.90 0.90.40.30.80.20.90.60.70.80.90.30 0.90.40.30.80.20.90.60.70.80.90.30.50 0.90.40.30.80.20.90.60.70.80.90.30.50.10 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90.40.30.80.20 90.40.30.80.20.90 90.40.30.80.20.90.60 + 90.40.30.80.20.90.60.70 90.40.30.80.20.90.60.70.80 + 90.40.30.80.20.90.60.70.80.90 90.40.30.80.20.90.60.70.80.90.30 + 90.40.30.80.20.90.60.70.80.90.30.50 + 90.40.30.80.20.90.60.70.80.90.30.50.10 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.10.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.10.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.10.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.10.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.10.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) -} {5 74.74 6 74.74.99 7 74.74.99 8 74.74.99.33 9 74.74.99.33 10 74.74.99.33.89 11 74.74.99.33.89 12 74.74.99.33.89.96 13 74.74.99.33.89.96 14 74.74.99.33.89.96.38 15 74.74.99.33.89.96.38 16 74.74.99.33.89.96.38.39 17 74.74.99.33.89.96.38.39 18 74.74.99.33.89.96.38.39.91 19 74.74.99.33.89.96.38.39.91 20 74.74.99.33.89.96.38.39.91.6 21 74.74.99.33.89.96.38.39.91.6 22 74.74.99.33.89.96.38.39.91.6.97 23 74.74.99.33.89.96.38.39.91.6.97 24 74.74.99.33.89.96.38.39.91.6.97.46 25 74.74.99.33.89.96.38.39.91.6.97.46 26 74.74.99.33.89.96.38.39.91.6.97.46.54 27 74.74.99.33.89.96.38.39.91.6.97.46.54 28 74.74.99.33.89.96.38.39.91.6.97.46.54.8 29 74.74.99.33.89.96.38.39.91.6.97.46.54.8 30 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 31 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29 32 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 33 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84 34 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 35 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23 36 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 37 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16 38 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 39 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 40 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 41 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 42 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 43 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 44 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 45 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 46 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 47 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 48 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 49 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 50 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 51 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 52 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 53 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 54 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 55 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 56 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 57 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 58 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 59 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 60 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 61 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 62 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 63 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 64 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 65 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 66 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 67 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 68 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 69 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 70 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 71 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 72 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 73 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 74 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 75 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 76 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 77 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 78 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 79 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 80 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 81 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 82 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 83 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 84 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 85 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 86 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 87 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 88 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 89 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 90 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 91 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 92 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 93 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 94 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 95 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 96 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 97 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 98 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 99 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 100 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 101 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 102 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 103 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 104 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 105 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 106 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 107 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 108 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 109 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 110 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 111 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 112 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 113 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 114 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 115 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 116 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 117 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 118 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 119 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 120 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 121 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 122 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 123 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 124 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 125 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 126 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 127 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 128 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 129 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 130 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 131 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 132 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 133 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 134 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 135 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 136 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 137 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 138 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 139 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 140 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 141 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 142 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 143 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 144 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 145 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 146 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 147 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 148 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 149 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 150 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 151 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 152 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 153 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 154 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 155 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 156 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 157 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 158 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 159 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 160 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 161 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 162 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 163 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 164 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 165 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 166 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 167 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 168 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 169 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 170 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 171 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 172 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 173 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 174 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 175 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 176 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 177 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 178 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 179 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 180 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 181 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 182 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 183 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 184 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 185 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 186 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 187 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 188 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 189 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 190 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 191 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 192 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 193 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 194 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 195 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 196 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 197 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 198 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 199 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 200 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} +} {5 89.96.38 6 89.96.38 7 89.96.38.39 8 89.96.38.39 9 89.96.38.39.91 + 10 89.96.38.39.91 11 89.96.38.39.91.6 12 89.96.38.39.91.6 + 13 89.96.38.39.91.6.97 14 89.96.38.39.91.6.97 15 89.96.38.39.91.6.97.46 + 16 89.96.38.39.91.6.97.46 17 89.96.38.39.91.6.97.46.54 + 18 89.96.38.39.91.6.97.46.54 19 89.96.38.39.91.6.97.46.54.8 + 20 89.96.38.39.91.6.97.46.54.8 21 89.96.38.39.91.6.97.46.54.8.29 + 22 89.96.38.39.91.6.97.46.54.8.29 23 89.96.38.39.91.6.97.46.54.8.29.84 + 24 89.96.38.39.91.6.97.46.54.8.29.84 + 25 89.96.38.39.91.6.97.46.54.8.29.84.23 + 26 89.96.38.39.91.6.97.46.54.8.29.84.23 + 27 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 28 89.96.38.39.91.6.97.46.54.8.29.84.23.16 + 29 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 30 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65 + 31 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 32 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47 + 33 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 34 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86 + 35 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 36 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61 + 37 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 38 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85 + 39 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 40 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85 + 41 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 42 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59 + 43 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 44 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32 + 45 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 46 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3 + 47 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 48 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22 + 49 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 50 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55 + 51 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 52 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28 + 53 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 54 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25 + 55 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 56 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1 + 57 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 58 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40 + 59 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 60 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56 + 61 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 62 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75 + 63 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 64 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89 + 65 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 66 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76 + 67 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 68 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4 + 69 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 70 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42 + 71 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 72 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78 + 73 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 74 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29 + 75 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 76 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63 + 77 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 78 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87 + 79 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 80 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80 + 81 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 82 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72 + 83 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 84 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9 + 85 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 86 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73 + 87 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 88 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65 + 89 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 90 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58 + 91 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 92 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98 + 93 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 94 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21 + 95 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 96 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65 + 97 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 98 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5 + 99 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 100 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11 + 101 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 102 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87 + 103 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 104 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12 + 105 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 106 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20 + 107 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 108 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31 + 109 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 110 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95 + 111 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 112 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73 + 113 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 114 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88 + 115 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 116 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8 + 117 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 118 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49 + 119 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 120 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90 + 121 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 122 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96 + 123 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 124 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55 + 125 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 126 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77 + 127 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 128 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2 + 129 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 130 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85 + 131 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 132 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74 + 133 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 134 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70 + 135 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 136 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19 + 137 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 138 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26 + 139 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 140 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47 + 141 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 142 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90 + 143 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 144 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58 + 145 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 146 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9 + 147 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 148 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72 + 149 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 150 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33 + 151 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 152 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75 + 153 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 154 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81 + 155 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 156 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23 + 157 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 158 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13 + 159 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 160 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14 + 161 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 162 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91 + 163 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 164 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91 + 165 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 166 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15 + 167 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 168 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36 + 169 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 170 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3 + 171 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 172 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69 + 173 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 174 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52 + 175 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 176 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50 + 177 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 178 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10 + 179 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 180 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33 + 181 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 182 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39 + 183 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 184 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58 + 185 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 186 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38 + 187 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 + 188 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83 + 189 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 + 190 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} do_execsql_test 1.10.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) -} {5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 22 {} 23 {} 24 {} 25 {} 26 {} 27 {} 28 {} 29 {} 30 {} 31 {} 32 {} 33 {} 34 {} 35 {} 36 {} 37 {} 38 {} 39 {} 40 {} 41 {} 42 {} 43 {} 44 {} 45 {} 46 {} 47 {} 48 {} 49 {} 50 {} 51 {} 52 {} 53 {} 54 {} 55 {} 56 {} 57 {} 58 {} 59 {} 60 {} 61 {} 62 {} 63 {} 64 {} 65 {} 66 {} 67 {} 68 {} 69 {} 70 {} 71 {} 72 {} 73 {} 74 {} 75 {} 76 {} 77 {} 78 {} 79 {} 80 {} 81 {} 82 {} 83 {} 84 {} 85 {} 86 {} 87 {} 88 {} 89 {} 90 {} 91 {} 92 {} 93 {} 94 {} 95 {} 96 {} 97 {} 98 {} 99 {} 100 {} 101 {} 102 {} 103 {} 104 {} 105 {} 106 {} 107 {} 108 {} 109 {} 110 {} 111 {} 112 {} 113 {} 114 {} 115 {} 116 {} 117 {} 118 {} 119 {} 120 {} 121 {} 122 {} 123 {} 124 {} 125 {} 126 {} 127 {} 128 {} 129 {} 130 {} 131 {} 132 {} 133 {} 134 {} 135 {} 136 {} 137 {} 138 {} 139 {} 140 {} 141 {} 142 {} 143 {} 144 {} 145 {} 146 {} 147 {} 148 {} 149 {} 150 {} 151 {} 152 {} 153 {} 154 {} 155 {} 156 {} 157 {} 158 {} 159 {} 160 {} 161 {} 162 {} 163 {} 164 {} 165 {} 166 {} 167 {} 168 {} 169 {} 170 {} 171 {} 172 {} 173 {} 174 {} 175 {} 176 {} 177 {} 178 {} 179 {} 180 {} 181 {} 182 {} 183 {} 184 {} 185 {} 186 {} 187 {} 188 {} 189 {} 190 {} 191 {} 192 {} 193 {} 194 {} 195 {} 196 {} 197 {} 198 {} 199 {} 200 {} 201 {} 201 {} 201 {} 201 {} 201 {}} +} {5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} + 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 22 {} 23 {} + 24 {} 25 {} 26 {} 27 {} 28 {} 29 {} 30 {} 31 {} 32 {} + 33 {} 34 {} 35 {} 36 {} 37 {} 38 {} 39 {} 40 {} 41 {} + 42 {} 43 {} 44 {} 45 {} 46 {} 47 {} 48 {} 49 {} 50 {} + 51 {} 52 {} 53 {} 54 {} 55 {} 56 {} 57 {} 58 {} 59 {} + 60 {} 61 {} 62 {} 63 {} 64 {} 65 {} 66 {} 67 {} 68 {} + 69 {} 70 {} 71 {} 72 {} 73 {} 74 {} 75 {} 76 {} 77 {} + 78 {} 79 {} 80 {} 81 {} 82 {} 83 {} 84 {} 85 {} 86 {} + 87 {} 88 {} 89 {} 90 {} 91 {} 92 {} 93 {} 94 {} 95 {} + 96 {} 97 {} 98 {} 99 {} 100 {} 101 {} 102 {} 103 {} 104 {} + 105 {} 106 {} 107 {} 108 {} 109 {} 110 {} 111 {} 112 {} + 113 {} 114 {} 115 {} 116 {} 117 {} 118 {} 119 {} 120 {} + 121 {} 122 {} 123 {} 124 {} 125 {} 126 {} 127 {} 128 {} + 129 {} 130 {} 131 {} 132 {} 133 {} 134 {} 135 {} 136 {} + 137 {} 138 {} 139 {} 140 {} 141 {} 142 {} 143 {} 144 {} + 145 {} 146 {} 147 {} 148 {} 149 {} 150 {} 151 {} 152 {} + 153 {} 154 {} 155 {} 156 {} 157 {} 158 {} 159 {} 160 {} + 161 {} 162 {} 163 {} 164 {} 165 {} 166 {} 167 {} 168 {} + 169 {} 170 {} 171 {} 172 {} 173 {} 174 {} 175 {} 176 {} + 177 {} 178 {} 179 {} 180 {} 181 {} 182 {} 183 {} 184 {} + 185 {} 186 {} 187 {} 188 {} 189 {} 190 {} 191 {} 191 {} + 191 {} 191 {} 191 {}} do_execsql_test 1.10.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) -} {5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 21 {} 21 {} 21 {} 21 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {}} +} {5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} + 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} + 20 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} + 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} + 19 {}} do_execsql_test 1.10.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) -} {5 89.6.29.47.59 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 8 89.6.29.47.59.28.75.78 9 89.6.29.47.59.28.75.78.72 10 89.6.29.47.59.28.75.78.72.98 11 89.6.29.47.59.28.75.78.72.98.87 12 89.6.29.47.59.28.75.78.72.98.87.73 13 89.6.29.47.59.28.75.78.72.98.87.73.96 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 17 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91 18 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69 19 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 21 {} 21 {} 21 {} 21 {} 21 {} 5 74.96.97.84.86 6 74.96.97.84.86.32 7 74.96.97.84.86.32.25 8 74.96.97.84.86.32.25.89 9 74.96.97.84.86.32.25.89.29 10 74.96.97.84.86.32.25.89.29.9 11 74.96.97.84.86.32.25.89.29.9.21 12 74.96.97.84.86.32.25.89.29.9.21.12 13 74.96.97.84.86.32.25.89.29.9.21.12.88 14 74.96.97.84.86.32.25.89.29.9.21.12.88.55 15 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70 16 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 17 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81 18 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91 19 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 74.38.46.23.61 6 74.38.46.23.61.3 7 74.38.46.23.61.3.1 8 74.38.46.23.61.3.1.76 9 74.38.46.23.61.3.1.76.63 10 74.38.46.23.61.3.1.76.63.73 11 74.38.46.23.61.3.1.76.63.73.65 12 74.38.46.23.61.3.1.76.63.73.65.20 13 74.38.46.23.61.3.1.76.63.73.65.20.8 14 74.38.46.23.61.3.1.76.63.73.65.20.8.77 15 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19 16 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 17 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23 18 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15 19 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 99.39.54.16.85 6 99.39.54.16.85.22 7 99.39.54.16.85.22.40 8 99.39.54.16.85.22.40.4 9 99.39.54.16.85.22.40.4.87 10 99.39.54.16.85.22.40.4.87.65 11 99.39.54.16.85.22.40.4.87.65.5 12 99.39.54.16.85.22.40.4.87.65.5.31 13 99.39.54.16.85.22.40.4.87.65.5.31.49 14 99.39.54.16.85.22.40.4.87.65.5.31.49.2 15 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26 16 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 17 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13 18 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36 19 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {} 5 33.91.8.65.85 6 33.91.8.65.85.55 7 33.91.8.65.85.55.56 8 33.91.8.65.85.55.56.42 9 33.91.8.65.85.55.56.42.80 10 33.91.8.65.85.55.56.42.80.58 11 33.91.8.65.85.55.56.42.80.58.11 12 33.91.8.65.85.55.56.42.80.58.11.95 13 33.91.8.65.85.55.56.42.80.58.11.95.90 14 33.91.8.65.85.55.56.42.80.58.11.95.90.85 15 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47 16 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 17 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14 18 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3 19 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 5 {} 6 {} 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} 17 {} 18 {} 19 {} 20 {} 20 {} 20 {} 20 {} 20 {}} +} {5 89.6.29.47.59 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 + 8 89.6.29.47.59.28.75.78 9 89.6.29.47.59.28.75.78.72 + 10 89.6.29.47.59.28.75.78.72.98 11 89.6.29.47.59.28.75.78.72.98.87 + 12 89.6.29.47.59.28.75.78.72.98.87.73 + 13 89.6.29.47.59.28.75.78.72.98.87.73.96 + 14 89.6.29.47.59.28.75.78.72.98.87.73.96.74 + 15 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90 + 16 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75 + 17 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91 + 18 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69 + 19 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 5 {} 6 {} + 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} + 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} 19 {} 5 96.97.84.86.32 + 6 96.97.84.86.32.25 7 96.97.84.86.32.25.89 8 96.97.84.86.32.25.89.29 + 9 96.97.84.86.32.25.89.29.9 10 96.97.84.86.32.25.89.29.9.21 + 11 96.97.84.86.32.25.89.29.9.21.12 12 96.97.84.86.32.25.89.29.9.21.12.88 + 13 96.97.84.86.32.25.89.29.9.21.12.88.55 + 14 96.97.84.86.32.25.89.29.9.21.12.88.55.70 + 15 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58 + 16 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81 + 17 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91 + 18 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 5 {} 6 {} + 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} + 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} 19 {} 5 38.46.23.61.3 + 6 38.46.23.61.3.1 7 38.46.23.61.3.1.76 8 38.46.23.61.3.1.76.63 + 9 38.46.23.61.3.1.76.63.73 10 38.46.23.61.3.1.76.63.73.65 + 11 38.46.23.61.3.1.76.63.73.65.20 12 38.46.23.61.3.1.76.63.73.65.20.8 + 13 38.46.23.61.3.1.76.63.73.65.20.8.77 + 14 38.46.23.61.3.1.76.63.73.65.20.8.77.19 + 15 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9 + 16 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23 + 17 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15 + 18 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 5 {} 6 {} + 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} + 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} 19 {} 5 39.54.16.85.22 + 6 39.54.16.85.22.40 7 39.54.16.85.22.40.4 8 39.54.16.85.22.40.4.87 + 9 39.54.16.85.22.40.4.87.65 10 39.54.16.85.22.40.4.87.65.5 + 11 39.54.16.85.22.40.4.87.65.5.31 12 39.54.16.85.22.40.4.87.65.5.31.49 + 13 39.54.16.85.22.40.4.87.65.5.31.49.2 + 14 39.54.16.85.22.40.4.87.65.5.31.49.2.26 + 15 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72 + 16 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13 + 17 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36 + 18 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 5 {} 6 {} + 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} + 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} 19 {} 5 91.8.65.85.55 + 6 91.8.65.85.55.56 7 91.8.65.85.55.56.42 8 91.8.65.85.55.56.42.80 + 9 91.8.65.85.55.56.42.80.58 10 91.8.65.85.55.56.42.80.58.11 + 11 91.8.65.85.55.56.42.80.58.11.95 12 91.8.65.85.55.56.42.80.58.11.95.90 + 13 91.8.65.85.55.56.42.80.58.11.95.90.85 + 14 91.8.65.85.55.56.42.80.58.11.95.90.85.47 + 15 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33 + 16 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14 + 17 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3 + 18 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 5 {} 6 {} + 7 {} 8 {} 9 {} 10 {} 11 {} 12 {} 13 {} 14 {} 15 {} 16 {} + 17 {} 18 {} 19 {} 19 {} 19 {} 19 {} 19 {}} do_execsql_test 1.11.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {74 74 74 99 99 99 99 99 99 99 96 96 96 96 96 96 91 91 99 99 99 99 99 99 99 97 97 97 97 97 97 93 93 93 93 93 93 93 93 93 93 86 91 91 91 91 91 91 91 85 85 85 91 91 91 91 91 91 91 90 90 89 89 89 89 56 56 75 75 89 98 98 98 98 98 98 98 94 94 94 94 78 78 87 87 87 87 87 87 87 84 84 95 95 95 95 96 98 98 98 98 98 98 98 74 74 74 87 87 87 87 87 87 87 41 95 95 95 95 95 95 95 88 88 88 90 90 96 96 96 96 96 96 96 77 85 85 85 85 85 85 85 74 74 70 70 80 90 90 90 90 90 90 90 72 72 93 93 93 93 93 93 93 81 81 81 62 91 91 91 91 91 91 91 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 58 58 83 83 83 83 83 83 83 82} +} {96 96 96 96 96 96 96 91 91 99 99 99 99 99 99 + 99 97 97 97 97 97 97 93 93 93 93 93 93 93 93 + 93 93 86 91 91 91 91 91 91 91 85 85 85 91 91 + 91 91 91 91 91 90 90 89 89 89 89 56 56 75 75 + 89 98 98 98 98 98 98 98 94 94 94 94 78 78 87 + 87 87 87 87 87 87 84 84 95 95 95 95 96 98 98 + 98 98 98 98 98 74 74 74 87 87 87 87 87 87 87 + 41 95 95 95 95 95 95 95 88 88 88 90 90 96 96 + 96 96 96 96 96 77 85 85 85 85 85 85 85 74 74 + 70 70 80 90 90 90 90 90 90 90 72 72 93 93 93 + 93 93 93 93 81 81 81 62 91 91 91 91 91 91 91 + 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 + 84 84 58 58 83 83 83 83 83 83 83} do_execsql_test 1.11.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 0 0 0 0 23 2 2 2 2 2 2 2 38 38 38 38 6 6 6 6 6 6 6 27 8 8 8 8 8 8 8 16 16 16 16 16 16 7 7 7 7 7 7 7 24 24 24 12 12 12 3 3 3 3 3 3 3 15 15 15 1 1 1 1 1 1 1 16 16 16 16 16 4 4 4 4 4 4 4 29 29 2 2 2 2 2 2 2 9 9 9 9 9 9 9 13 13 1 1 1 1 1 1 1 5 5 5 5 5 8 8 8 8 8 8 8 15 15 15 15 8 8 8 8 8 8 8 11 34 34 55 44 2 2 2 2 2 2 2 7 19 19 19 19 19 19 19 26 26 26 9 9 9 9 9 9 9 33 33 9 9 9 9 9 9 9 12 12 12 12 14 15 15 15 3 3 3 3 3 3 3 30 10 10 10 10 10 10 10 21 21 21 30 27 27 17 7 5 5 5} +} {81 59 38 38 38 38 38 38 6 6 6 6 6 6 6 27 8 + 8 8 8 8 8 8 16 16 16 16 16 16 7 7 7 7 7 7 + 7 24 24 24 12 12 12 3 3 3 3 3 3 3 15 15 15 + 1 1 1 1 1 1 1 16 16 16 16 16 4 4 4 4 4 4 + 4 29 29 2 2 2 2 2 2 2 9 9 9 9 9 9 9 13 + 13 1 1 1 1 1 1 1 5 5 5 5 5 8 8 8 8 8 8 + 8 15 15 15 15 8 8 8 8 8 8 8 11 34 34 55 44 + 2 2 2 2 2 2 2 7 19 19 19 19 19 19 19 26 26 + 26 9 9 9 9 9 9 9 33 33 9 9 9 9 9 9 9 12 + 12 12 12 14 15 15 15 3 3 3 3 3 3 3 30 10 10 + 10 10 10 10 10 21 21 21 30 27 27 17 7 7 7} do_execsql_test 1.11.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.11.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.11.3.3 { SELECT row_number() OVER ( ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.11.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.11.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.11.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.11.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.11.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.11.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.11.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.11.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.11.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.11.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.11.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.11.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.11.6.1 { SELECT @@ -5422,7 +19850,33 @@ do_execsql_test 1.11.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.11.7.1 { @@ -5430,11 +19884,13 @@ do_test 1.11.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5445,11 +19901,13 @@ do_test 1.11.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5460,11 +19918,13 @@ do_test 1.11.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5475,11 +19935,13 @@ do_test 1.11.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5490,11 +19952,13 @@ do_test 1.11.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5505,11 +19969,13 @@ do_test 1.11.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5520,11 +19986,13 @@ do_test 1.11.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5535,11 +20003,13 @@ do_test 1.11.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5550,11 +20020,13 @@ do_test 1.11.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5565,11 +20037,13 @@ do_test 1.11.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5580,11 +20054,13 @@ do_test 1.11.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5595,11 +20071,13 @@ do_test 1.11.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5610,11 +20088,13 @@ do_test 1.11.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5625,11 +20105,13 @@ do_test 1.11.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5640,11 +20122,13 @@ do_test 1.11.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5655,11 +20139,13 @@ do_test 1.11.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5670,11 +20156,13 @@ do_test 1.11.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5685,11 +20173,13 @@ do_test 1.11.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5700,250 +20190,1301 @@ do_test 1.11.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.11.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {44 78 28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206 206 206} +} {108 72 52 83 55 79 109 65 26 120 119 50 70 103 + 80 124 36 96 59 124 116 110 57 51 52 130 103 74 + 87 48 128 117 105 136 131 71 133 92 109 63 84 109 + 57 146 78 147 113 74 88 150 87 110 65 121 106 110 + 124 85 145 107 161 171 150 156 80 171 120 109 158 + 114 111 136 147 87 173 124 168 173 162 132 101 154 + 167 190 161 110 156 195 198 102 123 177 169 140 111 + 180 119 160 197 152 124 121 134 146 147 132 213 141 + 193 200 210 157 132 136 175 161 218 188 226 191 187 + 208 211 179 138 144 223 196 214 170 212 202 163 184 + 172 173 195 229 240 187 210 200 163 227 228 223 191 + 252 235 225 243 172 187 202 179 179 182 231 261 207 + 263 206 189 209 212 276 181 274 249 239 234 213 234 + 269 196 271 221 210 229 235 250 223 232 229 279 224 + 280 216 207 207 207} do_execsql_test 1.11.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {106 109 168 134 218 191 212 229 240 213 234 196 223 223 223 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 210 210 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 280 280 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 279 279 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 229 229 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 206 206 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 212 212 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 207 207 103 36 88 171 158 156 198 121 210 132 210 239 250 232 232 232 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229} +} {109 168 134 218 191 212 229 240 213 234 196 223 223 + 223 105 136 146 65 156 132 154 102 123 119 160 152 + 146 147 136 243 261 263 210 210 210 84 78 120 87 + 162 124 141 138 227 228 179 231 234 280 280 280 130 + 92 57 110 114 136 147 167 110 180 193 191 252 187 + 179 206 181 221 279 279 279 117 71 80 171 173 177 + 157 161 179 214 225 182 209 269 271 235 229 229 229 + 131 133 113 74 87 145 190 161 169 140 111 132 213 + 187 208 223 235 189 274 274 274 26 70 51 52 128 + 109 121 124 85 107 150 195 226 172 173 187 223 207 + 212 212 212 124 96 110 87 48 110 173 124 197 211 + 144 196 195 200 202 224 216 207 207 207 103 36 88 + 171 158 156 198 121 210 132 210 239 250 232 232 232 + 55 120 59 109 150 161 111 101 200 175 188 170 202 + 163 184 163 172 276 249 229 229 229} do_execsql_test 1.11.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {102 11 87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276 276 276} +} {87 138 57 181 80 111 26 48 144 207 36 121 132 101 + 163 172 196 119 136 63 124 179 110 179 182 74 132 + 189 51 52 85 216 163 134 123 210 78 141 57 187 71 + 87 172 173 50 224 88 59 111 170 109 213 223 146 + 147 84 114 191 206 221 157 161 209 229 74 140 107 + 187 207 212 124 202 52 232 55 184 229 106 132 152 + 120 92 110 179 235 65 70 87 110 195 200 175 234 + 160 234 136 80 113 187 109 121 124 196 156 210 239 + 250 72 109 188 202 191 105 154 79 231 147 225 103 + 161 169 223 96 83 249 212 162 227 228 167 180 193 + 117 177 214 145 208 235 150 110 211 103 158 200 168 + 229 92 156 243 280 279 116 173 269 271 131 133 223 + 128 173 197 210 99 150 161 147 218 240 109 136 146 + 261 263 124 130 252 171 190 213 274 108 195 226 119 + 124 171 198 120 276 276 276} do_execsql_test 1.11.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {134 109 213 223 106 234 191 212 168 229 147 218 240 240 240 119 136 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 263 263 138 63 124 179 78 141 84 120 234 79 231 162 227 228 280 280 280 110 179 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 252 252 71 157 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 171 171 74 132 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 274 274 52 85 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 226 226 207 216 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 124 124 132 88 52 232 156 210 239 250 83 103 158 210 171 198 198 198 172 163 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276 276 276} +} {109 213 223 106 234 191 212 168 229 147 218 240 240 + 240 119 136 123 210 146 147 132 152 160 105 154 92 + 156 243 109 136 146 261 263 263 263 63 124 179 78 + 141 84 120 234 79 231 162 227 228 280 280 280 110 + 179 57 187 114 191 206 221 92 110 136 147 167 180 + 193 279 124 130 252 252 252 71 157 161 209 229 179 + 235 80 225 117 177 214 116 173 269 271 171 171 171 + 132 189 87 74 140 113 187 103 161 169 145 208 235 + 131 133 223 190 213 274 274 274 52 85 172 173 107 + 187 207 212 65 70 109 121 124 223 150 128 108 195 + 226 226 226 207 216 50 224 124 202 87 110 195 200 + 196 96 110 211 173 197 119 124 124 124 132 88 52 + 232 156 210 239 250 83 103 158 210 171 198 198 198 + 172 163 59 111 170 55 184 229 175 72 109 188 202 + 249 200 99 150 161 120 276 276 276} do_execsql_test 1.11.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {106 109 168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229} +} {109 168 134 218 191 212 229 240 213 234 196 223 92 + 109 105 136 146 65 156 132 154 102 123 119 160 152 + 146 147 136 243 261 263 210 79 63 84 78 120 87 + 162 124 141 138 227 228 179 231 234 280 124 57 130 + 92 57 110 114 136 147 167 110 180 193 191 252 187 + 179 206 181 221 279 80 116 117 71 80 171 173 177 + 157 161 179 214 225 182 209 269 271 235 229 103 74 + 131 133 113 74 87 145 190 161 169 140 111 132 213 + 187 208 223 235 189 274 108 65 26 70 51 52 128 + 109 121 124 85 107 150 195 226 172 173 187 223 207 + 212 119 50 124 96 110 87 48 110 173 124 197 211 + 144 196 195 200 202 224 216 207 52 83 103 36 88 + 171 158 156 198 121 210 132 210 239 250 232 99 72 + 55 120 59 109 150 161 111 101 200 175 188 170 202 + 163 184 163 172 276 249 229 229 229} do_execsql_test 1.11.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.11.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 97 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 56 {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} 97 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} 56 + {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} + {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} + 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 58 {} {} {} {} 73 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 99 {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 12 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 1 1 1 1 2 2 3 4 5 6 7 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 1 2 2 2 3 4 6 7 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 13 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 12 12 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 13 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 91 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} {} {} 26 {} {} {} 16 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} + {} {} {} {} {} {} {} {} {} 16 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 0 0 0 0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27} +} {89 89 89 89 89 81 96 59 38 68 39 62 91 46 6 + 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 + 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 + 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 + 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 + 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 + 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 + 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 + 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 + 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 + 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 + 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 + 39 44 58 30 38 34 83} do_execsql_test 1.11.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 0 0 0 0 90 40 30 80 20 90 60 70 80 90 41 41 41 41 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 2 2 2 2 2 62 12 32 22 42 2 72 12 22 2 72 72 23 23 23 23 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 74 74 74 74 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 65 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 26 26 26 26 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 97 97 97 97 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 38 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 99 99 99 99 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 81 + 81 81 81 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 62 62 62 62 62 12 32 22 42 2 72 + 12 22 2 72 72 93 93 93 93 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 54 54 54 54 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 65 + 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 96 96 96 96 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 97 97 97 97 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 38 + 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 89 + 89 89 89 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.11.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 0 0 0 0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98} +} {1 1 1 1 1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 + 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 + 16 16 17 19 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 + 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 + 39 39 39 40 41 41 42 43 43 44 44 46 46 47 47 + 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 + 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 + 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 + 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 + 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 + 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 + 95 96 96 96 97 97} do_execsql_test 1.11.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 0 0 0 0 10 20 30 30 30 40 50 60 70 80 1 1 1 1 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 2 2 2 2 2 2 2 12 12 12 22 22 32 42 52 62 62 3 3 3 3 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 4 4 4 4 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 5 5 5 5 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 6 6 6 6 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89} +} {10 10 10 10 10 20 30 30 30 40 50 60 70 80 1 1 + 1 1 1 1 11 11 21 21 31 31 41 41 51 61 61 81 + 81 81 91 2 2 2 2 2 2 12 12 12 22 22 32 42 + 52 62 62 3 3 3 3 3 3 13 13 23 23 33 33 33 + 33 43 43 53 63 73 73 73 4 4 4 4 4 14 24 34 + 34 34 34 44 44 54 64 74 74 74 84 5 5 5 5 5 + 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 + 85 6 6 6 6 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 + 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 + 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 + 29 29 39 39 39 49 59 59 59 59 69 79 89} do_execsql_test 1.11.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 0 0 0 0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 30 + 50 10 30 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 81 91 91 21 62 12 32 22 42 2 72 + 12 22 2 72 72 12 62 52 82 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 33 3 33 83 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 + 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 85 75 15 95 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 + 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 + 58 58 38 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.11.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.11.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.11.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.11.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.11.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.11.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.11.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.11.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.11.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0.74.41 0.74.41.74 0.74.41.74.23 0.74.41.74.23.99 0.74.41.74.23.99.26 74.41.74.23.99.26.33 41.74.23.99.26.33.2 74.23.99.26.33.2.89 23.99.26.33.2.89.81 99.26.33.2.89.81.96 26.33.2.89.81.96.59 33.2.89.81.96.59.38 2.89.81.96.59.38.68 89.81.96.59.38.68.39 81.96.59.38.68.39.62 96.59.38.68.39.62.91 59.38.68.39.62.91.46 38.68.39.62.91.46.6 68.39.62.91.46.6.99 39.62.91.46.6.99.97 62.91.46.6.99.97.27 91.46.6.99.97.27.46 46.6.99.97.27.46.78 6.99.97.27.46.78.54 99.97.27.46.78.54.97 97.27.46.78.54.97.8 27.46.78.54.97.8.67 46.78.54.97.8.67.29 78.54.97.8.67.29.93 54.97.8.67.29.93.84 97.8.67.29.93.84.77 8.67.29.93.84.77.23 67.29.93.84.77.23.16 29.93.84.77.23.16.16 93.84.77.23.16.16.93 84.77.23.16.16.93.65 77.23.16.16.93.65.35 23.16.16.93.65.35.47 16.16.93.65.35.47.7 16.93.65.35.47.7.86 93.65.35.47.7.86.74 65.35.47.7.86.74.61 35.47.7.86.74.61.91 47.7.86.74.61.91.85 7.86.74.61.91.85.24 86.74.61.91.85.24.85 74.61.91.85.24.85.43 61.91.85.24.85.43.59 91.85.24.85.43.59.12 85.24.85.43.59.12.32 24.85.43.59.12.32.56 85.43.59.12.32.56.3 43.59.12.32.56.3.91 59.12.32.56.3.91.22 12.32.56.3.91.22.90 32.56.3.91.22.90.55 56.3.91.22.90.55.15 3.91.22.90.55.15.28 91.22.90.55.15.28.89 22.90.55.15.28.89.25 90.55.15.28.89.25.47 55.15.28.89.25.47.1 15.28.89.25.47.1.56 28.89.25.47.1.56.40 89.25.47.1.56.40.43 25.47.1.56.40.43.56 47.1.56.40.43.56.16 1.56.40.43.56.16.75 56.40.43.56.16.75.36 40.43.56.16.75.36.89 43.56.16.75.36.89.98 56.16.75.36.89.98.76 16.75.36.89.98.76.81 75.36.89.98.76.81.4 36.89.98.76.81.4.94 89.98.76.81.4.94.42 98.76.81.4.94.42.30 76.81.4.94.42.30.78 81.4.94.42.30.78.33 4.94.42.30.78.33.29 94.42.30.78.33.29.53 42.30.78.33.29.53.63 30.78.33.29.53.63.2 78.33.29.53.63.2.87 33.29.53.63.2.87.37 29.53.63.2.87.37.80 53.63.2.87.37.80.84 63.2.87.37.80.84.72 2.87.37.80.84.72.41 87.37.80.84.72.41.9 37.80.84.72.41.9.61 80.84.72.41.9.61.73 84.72.41.9.61.73.95 72.41.9.61.73.95.65 41.9.61.73.95.65.13 9.61.73.95.65.13.58 61.73.95.65.13.58.96 73.95.65.13.58.96.98 95.65.13.58.96.98.1 65.13.58.96.98.1.21 13.58.96.98.1.21.74 58.96.98.1.21.74.65 96.98.1.21.74.65.35 98.1.21.74.65.35.5 1.21.74.65.35.5.73 21.74.65.35.5.73.11 74.65.35.5.73.11.51 65.35.5.73.11.51.87 35.5.73.11.51.87.41 5.73.11.51.87.41.12 73.11.51.87.41.12.8 11.51.87.41.12.8.20 51.87.41.12.8.20.31 87.41.12.8.20.31.31 41.12.8.20.31.31.15 12.8.20.31.31.15.95 8.20.31.31.15.95.22 20.31.31.15.95.22.73 31.31.15.95.22.73.79 31.15.95.22.73.79.88 15.95.22.73.79.88.34 95.22.73.79.88.34.8 22.73.79.88.34.8.11 73.79.88.34.8.11.49 79.88.34.8.11.49.34 88.34.8.11.49.34.90 34.8.11.49.34.90.59 8.11.49.34.90.59.96 11.49.34.90.59.96.60 49.34.90.59.96.60.55 34.90.59.96.60.55.75 90.59.96.60.55.75.77 59.96.60.55.75.77.44 96.60.55.75.77.44.2 60.55.75.77.44.2.7 55.75.77.44.2.7.85 75.77.44.2.7.85.57 77.44.2.7.85.57.74 44.2.7.85.57.74.29 2.7.85.57.74.29.70 7.85.57.74.29.70.59 85.57.74.29.70.59.19 57.74.29.70.59.19.39 74.29.70.59.19.39.26 29.70.59.19.39.26.26 70.59.19.39.26.26.47 59.19.39.26.26.47.80 19.39.26.26.47.80.90 39.26.26.47.80.90.36 26.26.47.80.90.36.58 26.47.80.90.36.58.47 47.80.90.36.58.47.9 80.90.36.58.47.9.72 90.36.58.47.9.72.72 36.58.47.9.72.72.66 58.47.9.72.72.66.33 47.9.72.72.66.33.93 9.72.72.66.33.93.75 72.72.66.33.93.75.64 72.66.33.93.75.64.81 66.33.93.75.64.81.9 33.93.75.64.81.9.23 93.75.64.81.9.23.37 75.64.81.9.23.37.13 64.81.9.23.37.13.12 81.9.23.37.13.12.14 9.23.37.13.12.14.62 23.37.13.12.14.62.91 37.13.12.14.62.91.36 13.12.14.62.91.36.91 12.14.62.91.36.91.33 14.62.91.36.91.33.15 62.91.36.91.33.15.34 91.36.91.33.15.34.36 36.91.33.15.34.36.99 91.33.15.34.36.99.3 33.15.34.36.99.3.95 15.34.36.99.3.95.69 34.36.99.3.95.69.58 36.99.3.95.69.58.52 99.3.95.69.58.52.30 3.95.69.58.52.30.50 95.69.58.52.30.50.84 69.58.52.30.50.84.10 58.52.30.50.84.10.84 52.30.50.84.10.84.33 30.50.84.10.84.33.21 50.84.10.84.33.21.39 84.10.84.33.21.39.44 10.84.33.21.39.44.58 84.33.21.39.44.58.30 33.21.39.44.58.30.38 21.39.44.58.30.38.34 39.44.58.30.38.34.83 44.58.30.38.34.83.27 58.30.38.34.83.27.82 30.38.34.83.27.82.17 38.34.83.27.82.17.7 34.83.27.82.17.7.5 83.27.82.17.7.5 27.82.17.7.5} +} {89.81.96 89.81.96.59 89.81.96.59.38 89.81.96.59.38.68 + 89.81.96.59.38.68.39 81.96.59.38.68.39.62 96.59.38.68.39.62.91 + 59.38.68.39.62.91.46 38.68.39.62.91.46.6 68.39.62.91.46.6.99 + 39.62.91.46.6.99.97 62.91.46.6.99.97.27 91.46.6.99.97.27.46 + 46.6.99.97.27.46.78 6.99.97.27.46.78.54 99.97.27.46.78.54.97 + 97.27.46.78.54.97.8 27.46.78.54.97.8.67 46.78.54.97.8.67.29 + 78.54.97.8.67.29.93 54.97.8.67.29.93.84 97.8.67.29.93.84.77 + 8.67.29.93.84.77.23 67.29.93.84.77.23.16 29.93.84.77.23.16.16 + 93.84.77.23.16.16.93 84.77.23.16.16.93.65 77.23.16.16.93.65.35 + 23.16.16.93.65.35.47 16.16.93.65.35.47.7 16.93.65.35.47.7.86 + 93.65.35.47.7.86.74 65.35.47.7.86.74.61 35.47.7.86.74.61.91 + 47.7.86.74.61.91.85 7.86.74.61.91.85.24 86.74.61.91.85.24.85 + 74.61.91.85.24.85.43 61.91.85.24.85.43.59 91.85.24.85.43.59.12 + 85.24.85.43.59.12.32 24.85.43.59.12.32.56 85.43.59.12.32.56.3 + 43.59.12.32.56.3.91 59.12.32.56.3.91.22 12.32.56.3.91.22.90 + 32.56.3.91.22.90.55 56.3.91.22.90.55.15 3.91.22.90.55.15.28 + 91.22.90.55.15.28.89 22.90.55.15.28.89.25 90.55.15.28.89.25.47 + 55.15.28.89.25.47.1 15.28.89.25.47.1.56 28.89.25.47.1.56.40 + 89.25.47.1.56.40.43 25.47.1.56.40.43.56 47.1.56.40.43.56.16 + 1.56.40.43.56.16.75 56.40.43.56.16.75.36 40.43.56.16.75.36.89 + 43.56.16.75.36.89.98 56.16.75.36.89.98.76 16.75.36.89.98.76.81 + 75.36.89.98.76.81.4 36.89.98.76.81.4.94 89.98.76.81.4.94.42 + 98.76.81.4.94.42.30 76.81.4.94.42.30.78 81.4.94.42.30.78.33 + 4.94.42.30.78.33.29 94.42.30.78.33.29.53 42.30.78.33.29.53.63 + 30.78.33.29.53.63.2 78.33.29.53.63.2.87 33.29.53.63.2.87.37 + 29.53.63.2.87.37.80 53.63.2.87.37.80.84 63.2.87.37.80.84.72 + 2.87.37.80.84.72.41 87.37.80.84.72.41.9 37.80.84.72.41.9.61 + 80.84.72.41.9.61.73 84.72.41.9.61.73.95 72.41.9.61.73.95.65 + 41.9.61.73.95.65.13 9.61.73.95.65.13.58 61.73.95.65.13.58.96 + 73.95.65.13.58.96.98 95.65.13.58.96.98.1 65.13.58.96.98.1.21 + 13.58.96.98.1.21.74 58.96.98.1.21.74.65 96.98.1.21.74.65.35 + 98.1.21.74.65.35.5 1.21.74.65.35.5.73 21.74.65.35.5.73.11 + 74.65.35.5.73.11.51 65.35.5.73.11.51.87 35.5.73.11.51.87.41 + 5.73.11.51.87.41.12 73.11.51.87.41.12.8 11.51.87.41.12.8.20 + 51.87.41.12.8.20.31 87.41.12.8.20.31.31 41.12.8.20.31.31.15 + 12.8.20.31.31.15.95 8.20.31.31.15.95.22 20.31.31.15.95.22.73 + 31.31.15.95.22.73.79 31.15.95.22.73.79.88 15.95.22.73.79.88.34 + 95.22.73.79.88.34.8 22.73.79.88.34.8.11 73.79.88.34.8.11.49 + 79.88.34.8.11.49.34 88.34.8.11.49.34.90 34.8.11.49.34.90.59 + 8.11.49.34.90.59.96 11.49.34.90.59.96.60 49.34.90.59.96.60.55 + 34.90.59.96.60.55.75 90.59.96.60.55.75.77 59.96.60.55.75.77.44 + 96.60.55.75.77.44.2 60.55.75.77.44.2.7 55.75.77.44.2.7.85 + 75.77.44.2.7.85.57 77.44.2.7.85.57.74 44.2.7.85.57.74.29 + 2.7.85.57.74.29.70 7.85.57.74.29.70.59 85.57.74.29.70.59.19 + 57.74.29.70.59.19.39 74.29.70.59.19.39.26 29.70.59.19.39.26.26 + 70.59.19.39.26.26.47 59.19.39.26.26.47.80 19.39.26.26.47.80.90 + 39.26.26.47.80.90.36 26.26.47.80.90.36.58 26.47.80.90.36.58.47 + 47.80.90.36.58.47.9 80.90.36.58.47.9.72 90.36.58.47.9.72.72 + 36.58.47.9.72.72.66 58.47.9.72.72.66.33 47.9.72.72.66.33.93 + 9.72.72.66.33.93.75 72.72.66.33.93.75.64 72.66.33.93.75.64.81 + 66.33.93.75.64.81.9 33.93.75.64.81.9.23 93.75.64.81.9.23.37 + 75.64.81.9.23.37.13 64.81.9.23.37.13.12 81.9.23.37.13.12.14 + 9.23.37.13.12.14.62 23.37.13.12.14.62.91 37.13.12.14.62.91.36 + 13.12.14.62.91.36.91 12.14.62.91.36.91.33 14.62.91.36.91.33.15 + 62.91.36.91.33.15.34 91.36.91.33.15.34.36 36.91.33.15.34.36.99 + 91.33.15.34.36.99.3 33.15.34.36.99.3.95 15.34.36.99.3.95.69 + 34.36.99.3.95.69.58 36.99.3.95.69.58.52 99.3.95.69.58.52.30 + 3.95.69.58.52.30.50 95.69.58.52.30.50.84 69.58.52.30.50.84.10 + 58.52.30.50.84.10.84 52.30.50.84.10.84.33 30.50.84.10.84.33.21 + 50.84.10.84.33.21.39 84.10.84.33.21.39.44 10.84.33.21.39.44.58 + 84.33.21.39.44.58.30 33.21.39.44.58.30.38 21.39.44.58.30.38.34 + 39.44.58.30.38.34.83 44.58.30.38.34.83.27 58.30.38.34.83.27.82 + 30.38.34.83.27.82.17 38.34.83.27.82.17.7 34.83.27.82.17.7 + 83.27.82.17.7} do_execsql_test 1.11.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 90.40.30.80.20.90.60 40.30.80.20.90.60.70 30.80.20.90.60.70.80 80.20.90.60.70.80.90 20.90.60.70.80.90.30 90.60.70.80.90.30.50 60.70.80.90.30.50.10 70.80.90.30.50.10.30 80.90.30.50.10.30 90.30.50.10.30 41.81.91 41.81.91.61 41.81.91.61.91 41.81.91.61.91.91 41.81.91.61.91.91.1 81.91.61.91.91.1.81 91.61.91.91.1.81.41 61.91.91.1.81.41.61 91.91.1.81.41.61.1 91.1.81.41.61.1.21 1.81.41.61.1.21.11 81.41.61.1.21.11.51 41.61.1.21.11.51.41 61.1.21.11.51.41.31 1.21.11.51.41.31.31 21.11.51.41.31.31.11 11.51.41.31.31.11.81 51.41.31.31.11.81.91 41.31.31.11.81.91.91 31.31.11.81.91.91.21 31.11.81.91.91.21 11.81.91.91.21 2.62.12 2.62.12.32 2.62.12.32.22 2.62.12.32.22.42 2.62.12.32.22.42.2 62.12.32.22.42.2.72 12.32.22.42.2.72.12 32.22.42.2.72.12.22 22.42.2.72.12.22.2 42.2.72.12.22.2.72 2.72.12.22.2.72.72 72.12.22.2.72.72.12 12.22.2.72.72.12.62 22.2.72.72.12.62.52 2.72.72.12.62.52.82 72.72.12.62.52.82 72.12.62.52.82 23.33.93 23.33.93.23 23.33.93.23.93 23.33.93.23.93.43 23.33.93.23.93.43.3 33.93.23.93.43.3.43 93.23.93.43.3.43.33 23.93.43.3.43.33.53 93.43.3.43.33.53.63 43.3.43.33.53.63.73 3.43.33.53.63.73.13 43.33.53.63.73.13.73 33.53.63.73.13.73.73 53.63.73.13.73.73.33 63.73.13.73.73.33.93 73.13.73.73.33.93.23 13.73.73.33.93.23.13 73.73.33.93.23.13.33 73.33.93.23.13.33.3 33.93.23.13.33.3.33 93.23.13.33.3.33.83 23.13.33.3.33.83 13.33.3.33.83 74.74.54 74.74.54.84 74.74.54.84.74 74.74.54.84.74.24 74.74.54.84.74.24.4 74.54.84.74.24.4.94 54.84.74.24.4.94.84 84.74.24.4.94.84.74 74.24.4.94.84.74.34 24.4.94.84.74.34.34 4.94.84.74.34.34.44 94.84.74.34.34.44.74 84.74.34.34.44.74.64 74.34.34.44.74.64.14 34.34.44.74.64.14.34 34.44.74.64.14.34.84 44.74.64.14.34.84.84 74.64.14.34.84.84.44 64.14.34.84.84.44.34 14.34.84.84.44.34 34.84.84.44.34 65.35.85 65.35.85.85 65.35.85.85.55 65.35.85.85.55.15 65.35.85.85.55.15.25 35.85.85.55.15.25.75 85.85.55.15.25.75.95 85.55.15.25.75.95.65 55.15.25.75.95.65.65 15.25.75.95.65.65.35 25.75.95.65.65.35.5 75.95.65.65.35.5.15 95.65.65.35.5.15.95 65.65.35.5.15.95.55 65.35.5.15.95.55.75 35.5.15.95.55.75.85 5.15.95.55.75.85.75 15.95.55.75.85.75.15 95.55.75.85.75.15.95 55.75.85.75.15.95.5 75.85.75.15.95.5 85.75.15.95.5 26.96.46 26.96.46.6 26.96.46.6.46 26.96.46.6.46.16 26.96.46.6.46.16.16 96.46.6.46.16.16.86 46.6.46.16.16.86.56 6.46.16.16.86.56.56 46.16.16.86.56.56.56 16.16.86.56.56.56.16 16.86.56.56.56.16.36 86.56.56.56.16.36.76 56.56.56.16.36.76.96 56.56.16.36.76.96.96 56.16.36.76.96.96.26 16.36.76.96.96.26.26 36.76.96.96.26.26.36 76.96.96.26.26.36.66 96.96.26.26.36.66.36 96.26.26.36.66.36.36 26.26.36.66.36.36 26.36.66.36.36 97.27.97 97.27.97.67 97.27.97.67.77 97.27.97.67.77.47 97.27.97.67.77.47.7 27.97.67.77.47.7.47 97.67.77.47.7.47.87 67.77.47.7.47.87.37 77.47.7.47.87.37.87 47.7.47.87.37.87.77 7.47.87.37.87.77.7 47.87.37.87.77.7.57 87.37.87.77.7.57.47 37.87.77.7.57.47.47 87.77.7.57.47.47.37 77.7.57.47.47.37.27 7.57.47.47.37.27.17 57.47.47.37.27.17.7 47.47.37.27.17.7 47.37.27.17.7 38.68.78 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 38.68.78.8.28.98.78 68.78.8.28.98.78.58 78.8.28.98.78.58.98 8.28.98.78.58.98.8 28.98.78.58.98.8.88 98.78.58.98.8.88.8 78.58.98.8.88.8.58 58.98.8.88.8.58.58 98.8.88.8.58.58.58 8.88.8.58.58.58.38 88.8.58.58.58.38 8.58.58.58.38 99.89.59 99.89.59.39 99.89.59.39.99 99.89.59.39.99.29 99.89.59.39.99.29.59 89.59.39.99.29.59.89 59.39.99.29.59.89.89 39.99.29.59.89.89.29 99.29.59.89.89.29.9 29.59.89.89.29.9.79 59.89.89.29.9.79.49 89.89.29.9.79.49.59 89.29.9.79.49.59.29 29.9.79.49.59.29.59 9.79.49.59.29.59.19 79.49.59.29.59.19.39 49.59.29.59.19.39.9 59.29.59.19.39.9.9 29.59.19.39.9.9.99 59.19.39.9.9.99.69 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39} +} {90.40.30 90.40.30.80 90.40.30.80.20 90.40.30.80.20.90 + 90.40.30.80.20.90.60 40.30.80.20.90.60.70 30.80.20.90.60.70.80 + 80.20.90.60.70.80.90 20.90.60.70.80.90.30 90.60.70.80.90.30.50 + 60.70.80.90.30.50.10 70.80.90.30.50.10.30 80.90.30.50.10.30 + 90.30.50.10.30 81.91.61 81.91.61.91 81.91.61.91.91 81.91.61.91.91.1 + 81.91.61.91.91.1.81 91.61.91.91.1.81.41 61.91.91.1.81.41.61 + 91.91.1.81.41.61.1 91.1.81.41.61.1.21 1.81.41.61.1.21.11 + 81.41.61.1.21.11.51 41.61.1.21.11.51.41 61.1.21.11.51.41.31 + 1.21.11.51.41.31.31 21.11.51.41.31.31.11 11.51.41.31.31.11.81 + 51.41.31.31.11.81.91 41.31.31.11.81.91.91 31.31.11.81.91.91.21 + 31.11.81.91.91.21 11.81.91.91.21 62.12.32 62.12.32.22 + 62.12.32.22.42 62.12.32.22.42.2 62.12.32.22.42.2.72 + 12.32.22.42.2.72.12 32.22.42.2.72.12.22 22.42.2.72.12.22.2 + 42.2.72.12.22.2.72 2.72.12.22.2.72.72 72.12.22.2.72.72.12 + 12.22.2.72.72.12.62 22.2.72.72.12.62.52 2.72.72.12.62.52.82 + 72.72.12.62.52.82 72.12.62.52.82 93.23.93 93.23.93.43 93.23.93.43.3 + 93.23.93.43.3.43 93.23.93.43.3.43.33 23.93.43.3.43.33.53 + 93.43.3.43.33.53.63 43.3.43.33.53.63.73 3.43.33.53.63.73.13 + 43.33.53.63.73.13.73 33.53.63.73.13.73.73 53.63.73.13.73.73.33 + 63.73.13.73.73.33.93 73.13.73.73.33.93.23 13.73.73.33.93.23.13 + 73.73.33.93.23.13.33 73.33.93.23.13.33.3 33.93.23.13.33.3.33 + 93.23.13.33.3.33.83 23.13.33.3.33.83 13.33.3.33.83 54.84.74 + 54.84.74.24 54.84.74.24.4 54.84.74.24.4.94 54.84.74.24.4.94.84 + 84.74.24.4.94.84.74 74.24.4.94.84.74.34 24.4.94.84.74.34.34 + 4.94.84.74.34.34.44 94.84.74.34.34.44.74 84.74.34.34.44.74.64 + 74.34.34.44.74.64.14 34.34.44.74.64.14.34 34.44.74.64.14.34.84 + 44.74.64.14.34.84.84 74.64.14.34.84.84.44 64.14.34.84.84.44.34 + 14.34.84.84.44.34 34.84.84.44.34 65.35.85 65.35.85.85 + 65.35.85.85.55 65.35.85.85.55.15 65.35.85.85.55.15.25 + 35.85.85.55.15.25.75 85.85.55.15.25.75.95 85.55.15.25.75.95.65 + 55.15.25.75.95.65.65 15.25.75.95.65.65.35 25.75.95.65.65.35.5 + 75.95.65.65.35.5.15 95.65.65.35.5.15.95 65.65.35.5.15.95.55 + 65.35.5.15.95.55.75 35.5.15.95.55.75.85 5.15.95.55.75.85.75 + 15.95.55.75.85.75.15 95.55.75.85.75.15.95 55.75.85.75.15.95 + 75.85.75.15.95 96.46.6 96.46.6.46 96.46.6.46.16 96.46.6.46.16.16 + 96.46.6.46.16.16.86 46.6.46.16.16.86.56 6.46.16.16.86.56.56 + 46.16.16.86.56.56.56 16.16.86.56.56.56.16 16.86.56.56.56.16.36 + 86.56.56.56.16.36.76 56.56.56.16.36.76.96 56.56.16.36.76.96.96 + 56.16.36.76.96.96.26 16.36.76.96.96.26.26 36.76.96.96.26.26.36 + 76.96.96.26.26.36.66 96.96.26.26.36.66.36 96.26.26.36.66.36.36 + 26.26.36.66.36.36 26.36.66.36.36 97.27.97 97.27.97.67 + 97.27.97.67.77 97.27.97.67.77.47 97.27.97.67.77.47.7 + 27.97.67.77.47.7.47 97.67.77.47.7.47.87 67.77.47.7.47.87.37 + 77.47.7.47.87.37.87 47.7.47.87.37.87.77 7.47.87.37.87.77.7 + 47.87.37.87.77.7.57 87.37.87.77.7.57.47 37.87.77.7.57.47.47 + 87.77.7.57.47.47.37 77.7.57.47.47.37.27 7.57.47.47.37.27.17 + 57.47.47.37.27.17.7 47.47.37.27.17.7 47.37.27.17.7 38.68.78 + 38.68.78.8 38.68.78.8.28 38.68.78.8.28.98 38.68.78.8.28.98.78 + 68.78.8.28.98.78.58 78.8.28.98.78.58.98 8.28.98.78.58.98.8 + 28.98.78.58.98.8.88 98.78.58.98.8.88.8 78.58.98.8.88.8.58 + 58.98.8.88.8.58.58 98.8.88.8.58.58.58 8.88.8.58.58.58.38 + 88.8.58.58.58.38 8.58.58.58.38 89.59.39 89.59.39.99 89.59.39.99.29 + 89.59.39.99.29.59 89.59.39.99.29.59.89 59.39.99.29.59.89.89 + 39.99.29.59.89.89.29 99.29.59.89.89.29.9 29.59.89.89.29.9.79 + 59.89.89.29.9.79.49 89.89.29.9.79.49.59 89.29.9.79.49.59.29 + 29.9.79.49.59.29.59 9.79.49.59.29.59.19 79.49.59.29.59.19.39 + 49.59.29.59.19.39.9 59.29.59.19.39.9.9 29.59.19.39.9.9.99 + 59.19.39.9.9.99.69 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39} do_execsql_test 1.11.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0.1.1 0.1.1.2 0.1.1.2.2 0.1.1.2.2.2 0.1.1.2.2.2.3 1.1.2.2.2.3.3 1.2.2.2.3.3.4 2.2.2.3.3.4.5 2.2.3.3.4.5.5 2.3.3.4.5.5.6 3.3.4.5.5.6.7 3.4.5.5.6.7.7 4.5.5.6.7.7.7 5.5.6.7.7.7.8 5.6.7.7.7.8.8 6.7.7.7.8.8.8 7.7.7.8.8.8.9 7.7.8.8.8.9.9 7.8.8.8.9.9.9 8.8.8.9.9.9.10 8.8.9.9.9.10.11 8.9.9.9.10.11.11 9.9.9.10.11.11.12 9.9.10.11.11.12.12 9.10.11.11.12.12.12 10.11.11.12.12.12.13 11.11.12.12.12.13.13 11.12.12.12.13.13.14 12.12.12.13.13.14.15 12.12.13.13.14.15.15 12.13.13.14.15.15.15 13.13.14.15.15.15.16 13.14.15.15.15.16.16 14.15.15.15.16.16.16 15.15.15.16.16.16.17 15.15.16.16.16.17.19 15.16.16.16.17.19.20 16.16.16.17.19.20.21 16.16.17.19.20.21.21 16.17.19.20.21.21.22 17.19.20.21.21.22.22 19.20.21.21.22.22.23 20.21.21.22.22.23.23 21.21.22.22.23.23.23 21.22.22.23.23.23.24 22.22.23.23.23.24.25 22.23.23.23.24.25.26 23.23.23.24.25.26.26 23.23.24.25.26.26.26 23.24.25.26.26.26.27 24.25.26.26.26.27.27 25.26.26.26.27.27.28 26.26.26.27.27.28.29 26.26.27.27.28.29.29 26.27.27.28.29.29.29 27.27.28.29.29.29.30 27.28.29.29.29.30.30 28.29.29.29.30.30.30 29.29.29.30.30.30.31 29.29.30.30.30.31.31 29.30.30.30.31.31.32 30.30.30.31.31.32.33 30.30.31.31.32.33.33 30.31.31.32.33.33.33 31.31.32.33.33.33.33 31.32.33.33.33.33.33 32.33.33.33.33.33.34 33.33.33.33.33.34.34 33.33.33.33.34.34.34 33.33.33.34.34.34.34 33.33.34.34.34.34.35 33.34.34.34.34.35.35 34.34.34.34.35.35.36 34.34.34.35.35.36.36 34.34.35.35.36.36.36 34.35.35.36.36.36.36 35.35.36.36.36.36.37 35.36.36.36.36.37.37 36.36.36.36.37.37.38 36.36.36.37.37.38.38 36.36.37.37.38.38.39 36.37.37.38.38.39.39 37.37.38.38.39.39.39 37.38.38.39.39.39.40 38.38.39.39.39.40.41 38.39.39.39.40.41.41 39.39.39.40.41.41.41 39.39.40.41.41.41.42 39.40.41.41.41.42.43 40.41.41.41.42.43.43 41.41.41.42.43.43.44 41.41.42.43.43.44.44 41.42.43.43.44.44.46 42.43.43.44.44.46.46 43.43.44.44.46.46.47 43.44.44.46.46.47.47 44.44.46.46.47.47.47 44.46.46.47.47.47.47 46.46.47.47.47.47.49 46.47.47.47.47.49.50 47.47.47.47.49.50.51 47.47.47.49.50.51.52 47.47.49.50.51.52.53 47.49.50.51.52.53.54 49.50.51.52.53.54.55 50.51.52.53.54.55.55 51.52.53.54.55.55.56 52.53.54.55.55.56.56 53.54.55.55.56.56.56 54.55.55.56.56.56.57 55.55.56.56.56.57.58 55.56.56.56.57.58.58 56.56.56.57.58.58.58 56.56.57.58.58.58.58 56.57.58.58.58.58.59 57.58.58.58.58.59.59 58.58.58.58.59.59.59 58.58.58.59.59.59.59 58.58.59.59.59.59.60 58.59.59.59.59.60.61 59.59.59.59.60.61.61 59.59.59.60.61.61.62 59.59.60.61.61.62.62 59.60.61.61.62.62.63 60.61.61.62.62.63.64 61.61.62.62.63.64.65 61.62.62.63.64.65.65 62.62.63.64.65.65.65 62.63.64.65.65.65.66 63.64.65.65.65.66.67 64.65.65.65.66.67.68 65.65.65.66.67.68.69 65.65.66.67.68.69.70 65.66.67.68.69.70.72 66.67.68.69.70.72.72 67.68.69.70.72.72.72 68.69.70.72.72.72.73 69.70.72.72.72.73.73 70.72.72.72.73.73.73 72.72.72.73.73.73.74 72.72.73.73.73.74.74 72.73.73.73.74.74.74 73.73.73.74.74.74.74 73.73.74.74.74.74.74 73.74.74.74.74.74.75 74.74.74.74.74.75.75 74.74.74.74.75.75.75 74.74.74.75.75.75.76 74.74.75.75.75.76.77 74.75.75.75.76.77.77 75.75.75.76.77.77.78 75.75.76.77.77.78.78 75.76.77.77.78.78.79 76.77.77.78.78.79.80 77.77.78.78.79.80.80 77.78.78.79.80.80.81 78.78.79.80.80.81.81 78.79.80.80.81.81.81 79.80.80.81.81.81.82 80.80.81.81.81.82.83 80.81.81.81.82.83.84 81.81.81.82.83.84.84 81.81.82.83.84.84.84 81.82.83.84.84.84.84 82.83.84.84.84.84.85 83.84.84.84.84.85.85 84.84.84.84.85.85.85 84.84.84.85.85.85.86 84.84.85.85.85.86.87 84.85.85.85.86.87.87 85.85.85.86.87.87.88 85.85.86.87.87.88.89 85.86.87.87.88.89.89 86.87.87.88.89.89.89 87.87.88.89.89.89.90 87.88.89.89.89.90.90 88.89.89.89.90.90.90 89.89.89.90.90.90.91 89.89.90.90.90.91.91 89.90.90.90.91.91.91 90.90.90.91.91.91.91 90.90.91.91.91.91.91 90.91.91.91.91.91.93 91.91.91.91.91.93.93 91.91.91.91.93.93.93 91.91.91.93.93.93.94 91.91.93.93.93.94.95 91.93.93.93.94.95.95 93.93.93.94.95.95.95 93.93.94.95.95.95.96 93.94.95.95.95.96.96 94.95.95.95.96.96.96 95.95.95.96.96.96.97 95.95.96.96.96.97.97 95.96.96.96.97.97.98 96.96.96.97.97.98.98 96.96.97.97.98.98.99 96.97.97.98.98.99.99 97.97.98.98.99.99.99 97.98.98.99.99.99 98.98.99.99.99} +} {1.1.2 1.1.2.2 1.1.2.2.3 1.1.2.2.3.3 1.1.2.2.3.3.4 1.2.2.3.3.4.5 + 2.2.3.3.4.5.6 2.3.3.4.5.6.7 3.3.4.5.6.7.7 3.4.5.6.7.7.7 + 4.5.6.7.7.7.8 5.6.7.7.7.8.8 6.7.7.7.8.8.8 7.7.7.8.8.8.9 + 7.7.8.8.8.9.9 7.8.8.8.9.9.9 8.8.8.9.9.9.10 8.8.9.9.9.10.11 + 8.9.9.9.10.11.11 9.9.9.10.11.11.12 9.9.10.11.11.12.12 + 9.10.11.11.12.12.12 10.11.11.12.12.12.13 11.11.12.12.12.13.13 + 11.12.12.12.13.13.14 12.12.12.13.13.14.15 12.12.13.13.14.15.15 + 12.13.13.14.15.15.15 13.13.14.15.15.15.16 13.14.15.15.15.16.16 + 14.15.15.15.16.16.16 15.15.15.16.16.16.17 15.15.16.16.16.17.19 + 15.16.16.16.17.19.20 16.16.16.17.19.20.21 16.16.17.19.20.21.21 + 16.17.19.20.21.21.22 17.19.20.21.21.22.22 19.20.21.21.22.22.23 + 20.21.21.22.22.23.23 21.21.22.22.23.23.24 21.22.22.23.23.24.25 + 22.22.23.23.24.25.26 22.23.23.24.25.26.26 23.23.24.25.26.26.27 + 23.24.25.26.26.27.27 24.25.26.26.27.27.28 25.26.26.27.27.28.29 + 26.26.27.27.28.29.29 26.27.27.28.29.29.29 27.27.28.29.29.29.30 + 27.28.29.29.29.30.30 28.29.29.29.30.30.30 29.29.29.30.30.30.31 + 29.29.30.30.30.31.31 29.30.30.30.31.31.32 30.30.30.31.31.32.33 + 30.30.31.31.32.33.33 30.31.31.32.33.33.33 31.31.32.33.33.33.33 + 31.32.33.33.33.33.34 32.33.33.33.33.34.34 33.33.33.33.34.34.34 + 33.33.33.34.34.34.34 33.33.34.34.34.34.35 33.34.34.34.34.35.35 + 34.34.34.34.35.35.36 34.34.34.35.35.36.36 34.34.35.35.36.36.36 + 34.35.35.36.36.36.36 35.35.36.36.36.36.37 35.36.36.36.36.37.37 + 36.36.36.36.37.37.38 36.36.36.37.37.38.38 36.36.37.37.38.38.39 + 36.37.37.38.38.39.39 37.37.38.38.39.39.39 37.38.38.39.39.39.40 + 38.38.39.39.39.40.41 38.39.39.39.40.41.41 39.39.39.40.41.41.42 + 39.39.40.41.41.42.43 39.40.41.41.42.43.43 40.41.41.42.43.43.44 + 41.41.42.43.43.44.44 41.42.43.43.44.44.46 42.43.43.44.44.46.46 + 43.43.44.44.46.46.47 43.44.44.46.46.47.47 44.44.46.46.47.47.47 + 44.46.46.47.47.47.47 46.46.47.47.47.47.49 46.47.47.47.47.49.50 + 47.47.47.47.49.50.51 47.47.47.49.50.51.52 47.47.49.50.51.52.53 + 47.49.50.51.52.53.54 49.50.51.52.53.54.55 50.51.52.53.54.55.55 + 51.52.53.54.55.55.56 52.53.54.55.55.56.56 53.54.55.55.56.56.56 + 54.55.55.56.56.56.57 55.55.56.56.56.57.58 55.56.56.56.57.58.58 + 56.56.56.57.58.58.58 56.56.57.58.58.58.58 56.57.58.58.58.58.59 + 57.58.58.58.58.59.59 58.58.58.58.59.59.59 58.58.58.59.59.59.59 + 58.58.59.59.59.59.60 58.59.59.59.59.60.61 59.59.59.59.60.61.61 + 59.59.59.60.61.61.62 59.59.60.61.61.62.62 59.60.61.61.62.62.63 + 60.61.61.62.62.63.64 61.61.62.62.63.64.65 61.62.62.63.64.65.65 + 62.62.63.64.65.65.65 62.63.64.65.65.65.66 63.64.65.65.65.66.67 + 64.65.65.65.66.67.68 65.65.65.66.67.68.69 65.65.66.67.68.69.70 + 65.66.67.68.69.70.72 66.67.68.69.70.72.72 67.68.69.70.72.72.72 + 68.69.70.72.72.72.73 69.70.72.72.72.73.73 70.72.72.72.73.73.73 + 72.72.72.73.73.73.74 72.72.73.73.73.74.74 72.73.73.73.74.74.74 + 73.73.73.74.74.74.75 73.73.74.74.74.75.75 73.74.74.74.75.75.75 + 74.74.74.75.75.75.76 74.74.75.75.75.76.77 74.75.75.75.76.77.77 + 75.75.75.76.77.77.78 75.75.76.77.77.78.78 75.76.77.77.78.78.79 + 76.77.77.78.78.79.80 77.77.78.78.79.80.80 77.78.78.79.80.80.81 + 78.78.79.80.80.81.81 78.79.80.80.81.81.81 79.80.80.81.81.81.82 + 80.80.81.81.81.82.83 80.81.81.81.82.83.84 81.81.81.82.83.84.84 + 81.81.82.83.84.84.84 81.82.83.84.84.84.84 82.83.84.84.84.84.85 + 83.84.84.84.84.85.85 84.84.84.84.85.85.85 84.84.84.85.85.85.86 + 84.84.85.85.85.86.87 84.85.85.85.86.87.87 85.85.85.86.87.87.88 + 85.85.86.87.87.88.89 85.86.87.87.88.89.89 86.87.87.88.89.89.89 + 87.87.88.89.89.89.90 87.88.89.89.89.90.90 88.89.89.89.90.90.90 + 89.89.89.90.90.90.91 89.89.90.90.90.91.91 89.90.90.90.91.91.91 + 90.90.90.91.91.91.91 90.90.91.91.91.91.91 90.91.91.91.91.91.93 + 91.91.91.91.91.93.93 91.91.91.91.93.93.93 91.91.91.93.93.93.94 + 91.91.93.93.93.94.95 91.93.93.93.94.95.95 93.93.93.94.95.95.95 + 93.93.94.95.95.95.96 93.94.95.95.95.96.96 94.95.95.95.96.96.96 + 95.95.95.96.96.96.97 95.95.96.96.96.97.97 95.96.96.96.97.97.98 + 96.96.96.97.97.98.98 96.96.97.97.98.98.99 96.97.97.98.98.99.99 + 97.97.98.98.99.99 97.98.98.99.99} do_execsql_test 1.11.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0.10.20 0.10.20.30 0.10.20.30.30 0.10.20.30.30.30 0.10.20.30.30.30.40 10.20.30.30.30.40.50 20.30.30.30.40.50.60 30.30.30.40.50.60.70 30.30.40.50.60.70.80 30.40.50.60.70.80.80 40.50.60.70.80.80.90 50.60.70.80.80.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 80.80.90.90.90 1.1.11 1.1.11.11 1.1.11.11.21 1.1.11.11.21.21 1.1.11.11.21.21.31 1.11.11.21.21.31.31 11.11.21.21.31.31.41 11.21.21.31.31.41.41 21.21.31.31.41.41.41 21.31.31.41.41.41.51 31.31.41.41.41.51.61 31.41.41.41.51.61.61 41.41.41.51.61.61.81 41.41.51.61.61.81.81 41.51.61.61.81.81.81 51.61.61.81.81.81.91 61.61.81.81.81.91.91 61.81.81.81.91.91.91 81.81.81.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 91.91.91.91.91 2.2.2 2.2.2.12 2.2.2.12.12 2.2.2.12.12.12 2.2.2.12.12.12.22 2.2.12.12.12.22.22 2.12.12.12.22.22.32 12.12.12.22.22.32.42 12.12.22.22.32.42.52 12.22.22.32.42.52.62 22.22.32.42.52.62.62 22.32.42.52.62.62.72 32.42.52.62.62.72.72 42.52.62.62.72.72.72 52.62.62.72.72.72.82 62.62.72.72.72.82 62.72.72.72.82 3.3.13 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 3.3.13.13.23.23.23 3.13.13.23.23.23.33 13.13.23.23.23.33.33 13.23.23.23.33.33.33 23.23.23.33.33.33.33 23.23.33.33.33.33.33 23.33.33.33.33.33.43 33.33.33.33.33.43.43 33.33.33.33.43.43.53 33.33.33.43.43.53.63 33.33.43.43.53.63.73 33.43.43.53.63.73.73 43.43.53.63.73.73.73 43.53.63.73.73.73.83 53.63.73.73.73.83.93 63.73.73.73.83.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 73.83.93.93.93 4.14.24 4.14.24.34 4.14.24.34.34 4.14.24.34.34.34 4.14.24.34.34.34.34 14.24.34.34.34.34.44 24.34.34.34.34.44.44 34.34.34.34.44.44.54 34.34.34.44.44.54.64 34.34.44.44.54.64.74 34.44.44.54.64.74.74 44.44.54.64.74.74.74 44.54.64.74.74.74.74 54.64.74.74.74.74.74 64.74.74.74.74.74.84 74.74.74.74.74.84.84 74.74.74.74.84.84.84 74.74.74.84.84.84.84 74.74.84.84.84.84.94 74.84.84.84.84.94 84.84.84.84.94 5.5.15 5.5.15.15 5.5.15.15.15 5.5.15.15.15.25 5.5.15.15.15.25.35 5.15.15.15.25.35.35 15.15.15.25.35.35.55 15.15.25.35.35.55.55 15.25.35.35.55.55.65 25.35.35.55.55.65.65 35.35.55.55.65.65.65 35.55.55.65.65.65.75 55.55.65.65.65.75.75 55.65.65.65.75.75.75 65.65.65.75.75.75.85 65.65.75.75.75.85.85 65.75.75.75.85.85.85 75.75.75.85.85.85.95 75.75.85.85.85.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 85.85.95.95.95 6.16.16 6.16.16.16 6.16.16.16.26 6.16.16.16.26.26 6.16.16.16.26.26.26 16.16.16.26.26.26.36 16.16.26.26.26.36.36 16.26.26.26.36.36.36 26.26.26.36.36.36.36 26.26.36.36.36.36.46 26.36.36.36.36.46.46 36.36.36.36.46.46.56 36.36.36.46.46.56.56 36.36.46.46.56.56.56 36.46.46.56.56.56.66 46.46.56.56.56.66.76 46.56.56.56.66.76.86 56.56.56.66.76.86.96 56.56.66.76.86.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 76.86.96.96.96 7.7.7 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 7.7.17.27.27.37.37 7.17.27.27.37.37.47 17.27.27.37.37.47.47 27.27.37.37.47.47.47 27.37.37.47.47.47.47 37.37.47.47.47.47.57 37.47.47.47.47.57.67 47.47.47.47.57.67.77 47.47.47.57.67.77.77 47.47.57.67.77.77.87 47.57.67.77.77.87.87 57.67.77.77.87.87.97 67.77.77.87.87.97.97 77.77.87.87.97.97 77.87.87.97.97 8.8.8 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 8.8.28.38.38.58.58 8.28.38.38.58.58.58 28.38.38.58.58.58.58 38.38.58.58.58.58.68 38.58.58.58.58.68.78 58.58.58.58.68.78.78 58.58.58.68.78.78.88 58.58.68.78.78.88.98 58.68.78.78.88.98.98 68.78.78.88.98.98 78.78.88.98.98 9.9.9 9.9.9.19 9.9.9.19.29 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.19.29.29.29.39 9.19.29.29.29.39.39 19.29.29.29.39.39.39 29.29.29.39.39.39.49 29.29.39.39.39.49.59 29.39.39.39.49.59.59 39.39.39.49.59.59.59 39.39.49.59.59.59.59 39.49.59.59.59.59.69 49.59.59.59.59.69.79 59.59.59.59.69.79.89 59.59.59.69.79.89.89 59.59.69.79.89.89.89 59.69.79.89.89.89.99 69.79.89.89.89.99.99 79.89.89.89.99.99.99 89.89.89.99.99.99 89.89.99.99.99} +} {10.20.30 10.20.30.30 10.20.30.30.30 10.20.30.30.30.40 + 10.20.30.30.30.40.50 20.30.30.30.40.50.60 30.30.30.40.50.60.70 + 30.30.40.50.60.70.80 30.40.50.60.70.80.80 40.50.60.70.80.80.90 + 50.60.70.80.80.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 + 80.80.90.90.90 1.1.11 1.1.11.11 1.1.11.11.21 1.1.11.11.21.21 + 1.1.11.11.21.21.31 1.11.11.21.21.31.31 11.11.21.21.31.31.41 + 11.21.21.31.31.41.41 21.21.31.31.41.41.51 21.31.31.41.41.51.61 + 31.31.41.41.51.61.61 31.41.41.51.61.61.81 41.41.51.61.61.81.81 + 41.51.61.61.81.81.81 51.61.61.81.81.81.91 61.61.81.81.81.91.91 + 61.81.81.81.91.91.91 81.81.81.91.91.91.91 81.81.91.91.91.91.91 + 81.91.91.91.91.91 91.91.91.91.91 2.2.12 2.2.12.12 2.2.12.12.12 + 2.2.12.12.12.22 2.2.12.12.12.22.22 2.12.12.12.22.22.32 + 12.12.12.22.22.32.42 12.12.22.22.32.42.52 12.22.22.32.42.52.62 + 22.22.32.42.52.62.62 22.32.42.52.62.62.72 32.42.52.62.62.72.72 + 42.52.62.62.72.72.72 52.62.62.72.72.72.82 62.62.72.72.72.82 + 62.72.72.72.82 3.3.13 3.3.13.13 3.3.13.13.23 3.3.13.13.23.23 + 3.3.13.13.23.23.33 3.13.13.23.23.33.33 13.13.23.23.33.33.33 + 13.23.23.33.33.33.33 23.23.33.33.33.33.43 23.33.33.33.33.43.43 + 33.33.33.33.43.43.53 33.33.33.43.43.53.63 33.33.43.43.53.63.73 + 33.43.43.53.63.73.73 43.43.53.63.73.73.73 43.53.63.73.73.73.83 + 53.63.73.73.73.83.93 63.73.73.73.83.93.93 73.73.73.83.93.93.93 + 73.73.83.93.93.93 73.83.93.93.93 4.14.24 4.14.24.34 4.14.24.34.34 + 4.14.24.34.34.34 4.14.24.34.34.34.34 14.24.34.34.34.34.44 + 24.34.34.34.34.44.44 34.34.34.34.44.44.54 34.34.34.44.44.54.64 + 34.34.44.44.54.64.74 34.44.44.54.64.74.74 44.44.54.64.74.74.74 + 44.54.64.74.74.74.84 54.64.74.74.74.84.84 64.74.74.74.84.84.84 + 74.74.74.84.84.84.84 74.74.84.84.84.84.94 74.84.84.84.84.94 + 84.84.84.84.94 5.15.15 5.15.15.15 5.15.15.15.25 5.15.15.15.25.35 + 5.15.15.15.25.35.35 15.15.15.25.35.35.55 15.15.25.35.35.55.55 + 15.25.35.35.55.55.65 25.35.35.55.55.65.65 35.35.55.55.65.65.65 + 35.55.55.65.65.65.75 55.55.65.65.65.75.75 55.65.65.65.75.75.75 + 65.65.65.75.75.75.85 65.65.75.75.75.85.85 65.75.75.75.85.85.85 + 75.75.75.85.85.85.95 75.75.85.85.85.95.95 75.85.85.85.95.95.95 + 85.85.85.95.95.95 85.85.95.95.95 6.16.16 6.16.16.16 6.16.16.16.26 + 6.16.16.16.26.26 6.16.16.16.26.26.36 16.16.16.26.26.36.36 + 16.16.26.26.36.36.36 16.26.26.36.36.36.36 26.26.36.36.36.36.46 + 26.36.36.36.36.46.46 36.36.36.36.46.46.56 36.36.36.46.46.56.56 + 36.36.46.46.56.56.56 36.46.46.56.56.56.66 46.46.56.56.56.66.76 + 46.56.56.56.66.76.86 56.56.56.66.76.86.96 56.56.66.76.86.96.96 + 56.66.76.86.96.96.96 66.76.86.96.96.96 76.86.96.96.96 7.7.7 + 7.7.7.17 7.7.7.17.27 7.7.7.17.27.27 7.7.7.17.27.27.37 + 7.7.17.27.27.37.37 7.17.27.27.37.37.47 17.27.27.37.37.47.47 + 27.27.37.37.47.47.47 27.37.37.47.47.47.47 37.37.47.47.47.47.57 + 37.47.47.47.47.57.67 47.47.47.47.57.67.77 47.47.47.57.67.77.77 + 47.47.57.67.77.77.87 47.57.67.77.77.87.87 57.67.77.77.87.87.97 + 67.77.77.87.87.97.97 77.77.87.87.97.97 77.87.87.97.97 8.8.8 + 8.8.8.28 8.8.8.28.38 8.8.8.28.38.38 8.8.8.28.38.38.58 + 8.8.28.38.38.58.58 8.28.38.38.58.58.58 28.38.38.58.58.58.58 + 38.38.58.58.58.58.68 38.58.58.58.58.68.78 58.58.58.58.68.78.78 + 58.58.58.68.78.78.88 58.58.68.78.78.88.98 58.68.78.78.88.98.98 + 68.78.78.88.98.98 78.78.88.98.98 9.9.9 9.9.9.19 9.9.9.19.29 + 9.9.9.19.29.29 9.9.9.19.29.29.29 9.9.19.29.29.29.39 + 9.19.29.29.29.39.39 19.29.29.29.39.39.39 29.29.29.39.39.39.49 + 29.29.39.39.39.49.59 29.39.39.39.49.59.59 39.39.39.49.59.59.59 + 39.39.49.59.59.59.59 39.49.59.59.59.59.69 49.59.59.59.59.69.79 + 59.59.59.59.69.79.89 59.59.59.69.79.89.89 59.59.69.79.89.89.89 + 59.69.79.89.89.89.99 69.79.89.89.89.99.99 79.89.89.89.99.99 + 89.89.89.99.99} do_execsql_test 1.11.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2 -} {0.90.40 0.90.40.30 0.90.40.30.80 0.90.40.30.80.20 0.90.40.30.80.20.90 90.40.30.80.20.90.60 40.30.80.20.90.60.70 30.80.20.90.60.70.80 80.20.90.60.70.80.90 20.90.60.70.80.90.30 90.60.70.80.90.30.50 60.70.80.90.30.50.10 70.80.90.30.50.10.30 80.90.30.50.10.30.41 90.30.50.10.30.41.81 30.50.10.30.41.81.91 50.10.30.41.81.91.61 10.30.41.81.91.61.91 30.41.81.91.61.91.91 41.81.91.61.91.91.1 81.91.61.91.91.1.81 91.61.91.91.1.81.41 61.91.91.1.81.41.61 91.91.1.81.41.61.1 91.1.81.41.61.1.21 1.81.41.61.1.21.11 81.41.61.1.21.11.51 41.61.1.21.11.51.41 61.1.21.11.51.41.31 1.21.11.51.41.31.31 21.11.51.41.31.31.11 11.51.41.31.31.11.81 51.41.31.31.11.81.91 41.31.31.11.81.91.91 31.31.11.81.91.91.21 31.11.81.91.91.21.2 11.81.91.91.21.2.62 81.91.91.21.2.62.12 91.91.21.2.62.12.32 91.21.2.62.12.32.22 21.2.62.12.32.22.42 2.62.12.32.22.42.2 62.12.32.22.42.2.72 12.32.22.42.2.72.12 32.22.42.2.72.12.22 22.42.2.72.12.22.2 42.2.72.12.22.2.72 2.72.12.22.2.72.72 72.12.22.2.72.72.12 12.22.2.72.72.12.62 22.2.72.72.12.62.52 2.72.72.12.62.52.82 72.72.12.62.52.82.23 72.12.62.52.82.23.33 12.62.52.82.23.33.93 62.52.82.23.33.93.23 52.82.23.33.93.23.93 82.23.33.93.23.93.43 23.33.93.23.93.43.3 33.93.23.93.43.3.43 93.23.93.43.3.43.33 23.93.43.3.43.33.53 93.43.3.43.33.53.63 43.3.43.33.53.63.73 3.43.33.53.63.73.13 43.33.53.63.73.13.73 33.53.63.73.13.73.73 53.63.73.13.73.73.33 63.73.13.73.73.33.93 73.13.73.73.33.93.23 13.73.73.33.93.23.13 73.73.33.93.23.13.33 73.33.93.23.13.33.3 33.93.23.13.33.3.33 93.23.13.33.3.33.83 23.13.33.3.33.83.74 13.33.3.33.83.74.74 33.3.33.83.74.74.54 3.33.83.74.74.54.84 33.83.74.74.54.84.74 83.74.74.54.84.74.24 74.74.54.84.74.24.4 74.54.84.74.24.4.94 54.84.74.24.4.94.84 84.74.24.4.94.84.74 74.24.4.94.84.74.34 24.4.94.84.74.34.34 4.94.84.74.34.34.44 94.84.74.34.34.44.74 84.74.34.34.44.74.64 74.34.34.44.74.64.14 34.34.44.74.64.14.34 34.44.74.64.14.34.84 44.74.64.14.34.84.84 74.64.14.34.84.84.44 64.14.34.84.84.44.34 14.34.84.84.44.34.65 34.84.84.44.34.65.35 84.84.44.34.65.35.85 84.44.34.65.35.85.85 44.34.65.35.85.85.55 34.65.35.85.85.55.15 65.35.85.85.55.15.25 35.85.85.55.15.25.75 85.85.55.15.25.75.95 85.55.15.25.75.95.65 55.15.25.75.95.65.65 15.25.75.95.65.65.35 25.75.95.65.65.35.5 75.95.65.65.35.5.15 95.65.65.35.5.15.95 65.65.35.5.15.95.55 65.35.5.15.95.55.75 35.5.15.95.55.75.85 5.15.95.55.75.85.75 15.95.55.75.85.75.15 95.55.75.85.75.15.95 55.75.85.75.15.95.5 75.85.75.15.95.5.26 85.75.15.95.5.26.96 75.15.95.5.26.96.46 15.95.5.26.96.46.6 95.5.26.96.46.6.46 5.26.96.46.6.46.16 26.96.46.6.46.16.16 96.46.6.46.16.16.86 46.6.46.16.16.86.56 6.46.16.16.86.56.56 46.16.16.86.56.56.56 16.16.86.56.56.56.16 16.86.56.56.56.16.36 86.56.56.56.16.36.76 56.56.56.16.36.76.96 56.56.16.36.76.96.96 56.16.36.76.96.96.26 16.36.76.96.96.26.26 36.76.96.96.26.26.36 76.96.96.26.26.36.66 96.96.26.26.36.66.36 96.26.26.36.66.36.36 26.26.36.66.36.36.97 26.36.66.36.36.97.27 36.66.36.36.97.27.97 66.36.36.97.27.97.67 36.36.97.27.97.67.77 36.97.27.97.67.77.47 97.27.97.67.77.47.7 27.97.67.77.47.7.47 97.67.77.47.7.47.87 67.77.47.7.47.87.37 77.47.7.47.87.37.87 47.7.47.87.37.87.77 7.47.87.37.87.77.7 47.87.37.87.77.7.57 87.37.87.77.7.57.47 37.87.77.7.57.47.47 87.77.7.57.47.47.37 77.7.57.47.47.37.27 7.57.47.47.37.27.17 57.47.47.37.27.17.7 47.47.37.27.17.7.38 47.37.27.17.7.38.68 37.27.17.7.38.68.78 27.17.7.38.68.78.8 17.7.38.68.78.8.28 7.38.68.78.8.28.98 38.68.78.8.28.98.78 68.78.8.28.98.78.58 78.8.28.98.78.58.98 8.28.98.78.58.98.8 28.98.78.58.98.8.88 98.78.58.98.8.88.8 78.58.98.8.88.8.58 58.98.8.88.8.58.58 98.8.88.8.58.58.58 8.88.8.58.58.58.38 88.8.58.58.58.38.99 8.58.58.58.38.99.89 58.58.58.38.99.89.59 58.58.38.99.89.59.39 58.38.99.89.59.39.99 38.99.89.59.39.99.29 99.89.59.39.99.29.59 89.59.39.99.29.59.89 59.39.99.29.59.89.89 39.99.29.59.89.89.29 99.29.59.89.89.29.9 29.59.89.89.29.9.79 59.89.89.29.9.79.49 89.89.29.9.79.49.59 89.29.9.79.49.59.29 29.9.79.49.59.29.59 9.79.49.59.29.59.19 79.49.59.29.59.19.39 49.59.29.59.19.39.9 59.29.59.19.39.9.9 29.59.19.39.9.9.99 59.19.39.9.9.99.69 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39} +} {90.40.30 90.40.30.80 90.40.30.80.20 90.40.30.80.20.90 + 90.40.30.80.20.90.60 40.30.80.20.90.60.70 30.80.20.90.60.70.80 + 80.20.90.60.70.80.90 20.90.60.70.80.90.30 90.60.70.80.90.30.50 + 60.70.80.90.30.50.10 70.80.90.30.50.10.30 80.90.30.50.10.30.81 + 90.30.50.10.30.81.91 30.50.10.30.81.91.61 50.10.30.81.91.61.91 + 10.30.81.91.61.91.91 30.81.91.61.91.91.1 81.91.61.91.91.1.81 + 91.61.91.91.1.81.41 61.91.91.1.81.41.61 91.91.1.81.41.61.1 + 91.1.81.41.61.1.21 1.81.41.61.1.21.11 81.41.61.1.21.11.51 + 41.61.1.21.11.51.41 61.1.21.11.51.41.31 1.21.11.51.41.31.31 + 21.11.51.41.31.31.11 11.51.41.31.31.11.81 51.41.31.31.11.81.91 + 41.31.31.11.81.91.91 31.31.11.81.91.91.21 31.11.81.91.91.21.62 + 11.81.91.91.21.62.12 81.91.91.21.62.12.32 91.91.21.62.12.32.22 + 91.21.62.12.32.22.42 21.62.12.32.22.42.2 62.12.32.22.42.2.72 + 12.32.22.42.2.72.12 32.22.42.2.72.12.22 22.42.2.72.12.22.2 + 42.2.72.12.22.2.72 2.72.12.22.2.72.72 72.12.22.2.72.72.12 + 12.22.2.72.72.12.62 22.2.72.72.12.62.52 2.72.72.12.62.52.82 + 72.72.12.62.52.82.93 72.12.62.52.82.93.23 12.62.52.82.93.23.93 + 62.52.82.93.23.93.43 52.82.93.23.93.43.3 82.93.23.93.43.3.43 + 93.23.93.43.3.43.33 23.93.43.3.43.33.53 93.43.3.43.33.53.63 + 43.3.43.33.53.63.73 3.43.33.53.63.73.13 43.33.53.63.73.13.73 + 33.53.63.73.13.73.73 53.63.73.13.73.73.33 63.73.13.73.73.33.93 + 73.13.73.73.33.93.23 13.73.73.33.93.23.13 73.73.33.93.23.13.33 + 73.33.93.23.13.33.3 33.93.23.13.33.3.33 93.23.13.33.3.33.83 + 23.13.33.3.33.83.54 13.33.3.33.83.54.84 33.3.33.83.54.84.74 + 3.33.83.54.84.74.24 33.83.54.84.74.24.4 83.54.84.74.24.4.94 + 54.84.74.24.4.94.84 84.74.24.4.94.84.74 74.24.4.94.84.74.34 + 24.4.94.84.74.34.34 4.94.84.74.34.34.44 94.84.74.34.34.44.74 + 84.74.34.34.44.74.64 74.34.34.44.74.64.14 34.34.44.74.64.14.34 + 34.44.74.64.14.34.84 44.74.64.14.34.84.84 74.64.14.34.84.84.44 + 64.14.34.84.84.44.34 14.34.84.84.44.34.65 34.84.84.44.34.65.35 + 84.84.44.34.65.35.85 84.44.34.65.35.85.85 44.34.65.35.85.85.55 + 34.65.35.85.85.55.15 65.35.85.85.55.15.25 35.85.85.55.15.25.75 + 85.85.55.15.25.75.95 85.55.15.25.75.95.65 55.15.25.75.95.65.65 + 15.25.75.95.65.65.35 25.75.95.65.65.35.5 75.95.65.65.35.5.15 + 95.65.65.35.5.15.95 65.65.35.5.15.95.55 65.35.5.15.95.55.75 + 35.5.15.95.55.75.85 5.15.95.55.75.85.75 15.95.55.75.85.75.15 + 95.55.75.85.75.15.95 55.75.85.75.15.95.96 75.85.75.15.95.96.46 + 85.75.15.95.96.46.6 75.15.95.96.46.6.46 15.95.96.46.6.46.16 + 95.96.46.6.46.16.16 96.46.6.46.16.16.86 46.6.46.16.16.86.56 + 6.46.16.16.86.56.56 46.16.16.86.56.56.56 16.16.86.56.56.56.16 + 16.86.56.56.56.16.36 86.56.56.56.16.36.76 56.56.56.16.36.76.96 + 56.56.16.36.76.96.96 56.16.36.76.96.96.26 16.36.76.96.96.26.26 + 36.76.96.96.26.26.36 76.96.96.26.26.36.66 96.96.26.26.36.66.36 + 96.26.26.36.66.36.36 26.26.36.66.36.36.97 26.36.66.36.36.97.27 + 36.66.36.36.97.27.97 66.36.36.97.27.97.67 36.36.97.27.97.67.77 + 36.97.27.97.67.77.47 97.27.97.67.77.47.7 27.97.67.77.47.7.47 + 97.67.77.47.7.47.87 67.77.47.7.47.87.37 77.47.7.47.87.37.87 + 47.7.47.87.37.87.77 7.47.87.37.87.77.7 47.87.37.87.77.7.57 + 87.37.87.77.7.57.47 37.87.77.7.57.47.47 87.77.7.57.47.47.37 + 77.7.57.47.47.37.27 7.57.47.47.37.27.17 57.47.47.37.27.17.7 + 47.47.37.27.17.7.38 47.37.27.17.7.38.68 37.27.17.7.38.68.78 + 27.17.7.38.68.78.8 17.7.38.68.78.8.28 7.38.68.78.8.28.98 + 38.68.78.8.28.98.78 68.78.8.28.98.78.58 78.8.28.98.78.58.98 + 8.28.98.78.58.98.8 28.98.78.58.98.8.88 98.78.58.98.8.88.8 + 78.58.98.8.88.8.58 58.98.8.88.8.58.58 98.8.88.8.58.58.58 + 8.88.8.58.58.58.38 88.8.58.58.58.38.89 8.58.58.58.38.89.59 + 58.58.58.38.89.59.39 58.58.38.89.59.39.99 58.38.89.59.39.99.29 + 38.89.59.39.99.29.59 89.59.39.99.29.59.89 59.39.99.29.59.89.89 + 39.99.29.59.89.89.29 99.29.59.89.89.29.9 29.59.89.89.29.9.79 + 59.89.89.29.9.79.49 89.89.29.9.79.49.59 89.29.9.79.49.59.29 + 29.9.79.49.59.29.59 9.79.49.59.29.59.19 79.49.59.29.59.19.39 + 49.59.29.59.19.39.9 59.29.59.19.39.9.9 29.59.19.39.9.9.99 + 59.19.39.9.9.99.69 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39} do_execsql_test 1.11.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.11.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.11.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.11.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.11.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) -} {3 74 4 74.74 5 74.74 6 74.74.99 7 74.74.99 7 74.74.99.33 7 74.99.33 7 74.99.33.89 7 99.33.89 7 99.33.89.96 7 33.89.96 7 33.89.96.38 7 89.96.38 7 89.96.38.39 7 96.38.39 7 96.38.39.91 7 38.39.91 7 38.39.91.6 7 39.91.6 7 39.91.6.97 7 91.6.97 7 91.6.97.46 7 6.97.46 7 6.97.46.54 7 97.46.54 7 97.46.54.8 7 46.54.8 7 46.54.8.29 7 54.8.29 7 54.8.29.84 7 8.29.84 7 8.29.84.23 7 29.84.23 7 29.84.23.16 7 84.23.16 7 84.23.16.65 7 23.16.65 7 23.16.65.47 7 16.65.47 7 16.65.47.86 7 65.47.86 7 65.47.86.61 7 47.86.61 7 47.86.61.85 7 86.61.85 7 86.61.85.85 7 61.85.85 7 61.85.85.59 7 85.85.59 7 85.85.59.32 7 85.59.32 7 85.59.32.3 7 59.32.3 7 59.32.3.22 7 32.3.22 7 32.3.22.55 7 3.22.55 7 3.22.55.28 7 22.55.28 7 22.55.28.25 7 55.28.25 7 55.28.25.1 7 28.25.1 7 28.25.1.40 7 25.1.40 7 25.1.40.56 7 1.40.56 7 1.40.56.75 7 40.56.75 7 40.56.75.89 7 56.75.89 7 56.75.89.76 7 75.89.76 7 75.89.76.4 7 89.76.4 7 89.76.4.42 7 76.4.42 7 76.4.42.78 7 4.42.78 7 4.42.78.29 7 42.78.29 7 42.78.29.63 7 78.29.63 7 78.29.63.87 7 29.63.87 7 29.63.87.80 7 63.87.80 7 63.87.80.72 7 87.80.72 7 87.80.72.9 7 80.72.9 7 80.72.9.73 7 72.9.73 7 72.9.73.65 7 9.73.65 7 9.73.65.58 7 73.65.58 7 73.65.58.98 7 65.58.98 7 65.58.98.21 7 58.98.21 7 58.98.21.65 7 98.21.65 7 98.21.65.5 7 21.65.5 7 21.65.5.11 7 65.5.11 7 65.5.11.87 7 5.11.87 7 5.11.87.12 7 11.87.12 7 11.87.12.20 7 87.12.20 7 87.12.20.31 7 12.20.31 7 12.20.31.95 7 20.31.95 7 20.31.95.73 7 31.95.73 7 31.95.73.88 7 95.73.88 7 95.73.88.8 7 73.88.8 7 73.88.8.49 7 88.8.49 7 88.8.49.90 7 8.49.90 7 8.49.90.96 7 49.90.96 7 49.90.96.55 7 90.96.55 7 90.96.55.77 7 96.55.77 7 96.55.77.2 7 55.77.2 7 55.77.2.85 7 77.2.85 7 77.2.85.74 7 2.85.74 7 2.85.74.70 7 85.74.70 7 85.74.70.19 7 74.70.19 7 74.70.19.26 7 70.19.26 7 70.19.26.47 7 19.26.47 7 19.26.47.90 7 26.47.90 7 26.47.90.58 7 47.90.58 7 47.90.58.9 7 90.58.9 7 90.58.9.72 7 58.9.72 7 58.9.72.33 7 9.72.33 7 9.72.33.75 7 72.33.75 7 72.33.75.81 7 33.75.81 7 33.75.81.23 7 75.81.23 7 75.81.23.13 7 81.23.13 7 81.23.13.14 7 23.13.14 7 23.13.14.91 7 13.14.91 7 13.14.91.91 7 14.91.91 7 14.91.91.15 7 91.91.15 7 91.91.15.36 7 91.15.36 7 91.15.36.3 7 15.36.3 7 15.36.3.69 7 36.3.69 7 36.3.69.52 7 3.69.52 7 3.69.52.50 7 69.52.50 7 69.52.50.10 7 52.50.10 7 52.50.10.33 7 50.10.33 7 50.10.33.39 7 10.33.39 7 10.33.39.58 7 33.39.58 7 33.39.58.38 7 39.58.38 7 39.58.38.83 7 58.38.83 7 58.38.83.82 7 38.83.82 7 38.83.82.7 7 83.82.7 6 83.82.7 5 82.7} +} {3 89.96 4 89.96 5 89.96.38 6 89.96.38 7 89.96.38.39 7 96.38.39 + 7 96.38.39.91 7 38.39.91 7 38.39.91.6 7 39.91.6 7 39.91.6.97 + 7 91.6.97 7 91.6.97.46 7 6.97.46 7 6.97.46.54 7 97.46.54 + 7 97.46.54.8 7 46.54.8 7 46.54.8.29 7 54.8.29 7 54.8.29.84 + 7 8.29.84 7 8.29.84.23 7 29.84.23 7 29.84.23.16 7 84.23.16 + 7 84.23.16.65 7 23.16.65 7 23.16.65.47 7 16.65.47 7 16.65.47.86 + 7 65.47.86 7 65.47.86.61 7 47.86.61 7 47.86.61.85 7 86.61.85 + 7 86.61.85.85 7 61.85.85 7 61.85.85.59 7 85.85.59 7 85.85.59.32 + 7 85.59.32 7 85.59.32.3 7 59.32.3 7 59.32.3.22 7 32.3.22 + 7 32.3.22.55 7 3.22.55 7 3.22.55.28 7 22.55.28 7 22.55.28.25 + 7 55.28.25 7 55.28.25.1 7 28.25.1 7 28.25.1.40 7 25.1.40 + 7 25.1.40.56 7 1.40.56 7 1.40.56.75 7 40.56.75 7 40.56.75.89 + 7 56.75.89 7 56.75.89.76 7 75.89.76 7 75.89.76.4 7 89.76.4 + 7 89.76.4.42 7 76.4.42 7 76.4.42.78 7 4.42.78 7 4.42.78.29 + 7 42.78.29 7 42.78.29.63 7 78.29.63 7 78.29.63.87 7 29.63.87 + 7 29.63.87.80 7 63.87.80 7 63.87.80.72 7 87.80.72 7 87.80.72.9 + 7 80.72.9 7 80.72.9.73 7 72.9.73 7 72.9.73.65 7 9.73.65 + 7 9.73.65.58 7 73.65.58 7 73.65.58.98 7 65.58.98 7 65.58.98.21 + 7 58.98.21 7 58.98.21.65 7 98.21.65 7 98.21.65.5 7 21.65.5 + 7 21.65.5.11 7 65.5.11 7 65.5.11.87 7 5.11.87 7 5.11.87.12 + 7 11.87.12 7 11.87.12.20 7 87.12.20 7 87.12.20.31 7 12.20.31 + 7 12.20.31.95 7 20.31.95 7 20.31.95.73 7 31.95.73 7 31.95.73.88 + 7 95.73.88 7 95.73.88.8 7 73.88.8 7 73.88.8.49 7 88.8.49 + 7 88.8.49.90 7 8.49.90 7 8.49.90.96 7 49.90.96 7 49.90.96.55 + 7 90.96.55 7 90.96.55.77 7 96.55.77 7 96.55.77.2 7 55.77.2 + 7 55.77.2.85 7 77.2.85 7 77.2.85.74 7 2.85.74 7 2.85.74.70 + 7 85.74.70 7 85.74.70.19 7 74.70.19 7 74.70.19.26 7 70.19.26 + 7 70.19.26.47 7 19.26.47 7 19.26.47.90 7 26.47.90 7 26.47.90.58 + 7 47.90.58 7 47.90.58.9 7 90.58.9 7 90.58.9.72 7 58.9.72 + 7 58.9.72.33 7 9.72.33 7 9.72.33.75 7 72.33.75 7 72.33.75.81 + 7 33.75.81 7 33.75.81.23 7 75.81.23 7 75.81.23.13 7 81.23.13 + 7 81.23.13.14 7 23.13.14 7 23.13.14.91 7 13.14.91 7 13.14.91.91 + 7 14.91.91 7 14.91.91.15 7 91.91.15 7 91.91.15.36 7 91.15.36 + 7 91.15.36.3 7 15.36.3 7 15.36.3.69 7 36.3.69 7 36.3.69.52 + 7 3.69.52 7 3.69.52.50 7 69.52.50 7 69.52.50.10 7 52.50.10 + 7 52.50.10.33 7 50.10.33 7 50.10.33.39 7 10.33.39 7 10.33.39.58 + 7 33.39.58 7 33.39.58.38 7 39.58.38 7 39.58.38.83 7 58.38.83 + 7 58.38.83.82 7 38.83.82 7 38.83.82.7 6 83.82.7 5 83.82.7} do_execsql_test 1.11.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) -} {3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {}} +} {3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 6 {} 5 {}} do_execsql_test 1.11.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) -} {3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {}} +} {3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} + 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} + 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} + 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} + 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 {} 4 {} 5 {} 6 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 6 {} 5 {}} do_execsql_test 1.11.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) -} {3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 6 89.6.29.47.59.28 7 89.6.29.47.59.28.75 7 6.29.47.59.28.75.78 7 29.47.59.28.75.78.72 7 47.59.28.75.78.72.98 7 59.28.75.78.72.98.87 7 28.75.78.72.98.87.73 7 75.78.72.98.87.73.96 7 78.72.98.87.73.96.74 7 72.98.87.73.96.74.90 7 98.87.73.96.74.90.75 7 87.73.96.74.90.75.91 7 73.96.74.90.75.91.69 7 96.74.90.75.91.69.39 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 5 75.91.69.39.7 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 74.96.97 4 74.96.97.84 5 74.96.97.84.86 6 74.96.97.84.86.32 7 74.96.97.84.86.32.25 7 96.97.84.86.32.25.89 7 97.84.86.32.25.89.29 7 84.86.32.25.89.29.9 7 86.32.25.89.29.9.21 7 32.25.89.29.9.21.12 7 25.89.29.9.21.12.88 7 89.29.9.21.12.88.55 7 29.9.21.12.88.55.70 7 9.21.12.88.55.70.58 7 21.12.88.55.70.58.81 7 12.88.55.70.58.81.91 7 88.55.70.58.81.91.52 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 5 58.81.91.52.58 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 74.38.46 4 74.38.46.23 5 74.38.46.23.61 6 74.38.46.23.61.3 7 74.38.46.23.61.3.1 7 38.46.23.61.3.1.76 7 46.23.61.3.1.76.63 7 23.61.3.1.76.63.73 7 61.3.1.76.63.73.65 7 3.1.76.63.73.65.20 7 1.76.63.73.65.20.8 7 76.63.73.65.20.8.77 7 63.73.65.20.8.77.19 7 73.65.20.8.77.19.9 7 65.20.8.77.19.9.23 7 20.8.77.19.9.23.15 7 8.77.19.9.23.15.50 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 5 9.23.15.50.38 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 99.39.54 4 99.39.54.16 5 99.39.54.16.85 6 99.39.54.16.85.22 7 99.39.54.16.85.22.40 7 39.54.16.85.22.40.4 7 54.16.85.22.40.4.87 7 16.85.22.40.4.87.65 7 85.22.40.4.87.65.5 7 22.40.4.87.65.5.31 7 40.4.87.65.5.31.49 7 4.87.65.5.31.49.2 7 87.65.5.31.49.2.26 7 65.5.31.49.2.26.72 7 5.31.49.2.26.72.13 7 31.49.2.26.72.13.36 7 49.2.26.72.13.36.10 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 5 72.13.36.10.83 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 33.91.8 4 33.91.8.65 5 33.91.8.65.85 6 33.91.8.65.85.55 7 33.91.8.65.85.55.56 7 91.8.65.85.55.56.42 7 8.65.85.55.56.42.80 7 65.85.55.56.42.80.58 7 85.55.56.42.80.58.11 7 55.56.42.80.58.11.95 7 56.42.80.58.11.95.90 7 42.80.58.11.95.90.85 7 80.58.11.95.90.85.47 7 58.11.95.90.85.47.33 7 11.95.90.85.47.33.14 7 95.90.85.47.33.14.3 7 90.85.47.33.14.3.33 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 5 33.14.3.33.82 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {}} +} {3 89.6.29 4 89.6.29.47 5 89.6.29.47.59 6 89.6.29.47.59.28 + 7 89.6.29.47.59.28.75 7 6.29.47.59.28.75.78 7 29.47.59.28.75.78.72 + 7 47.59.28.75.78.72.98 7 59.28.75.78.72.98.87 7 28.75.78.72.98.87.73 + 7 75.78.72.98.87.73.96 7 78.72.98.87.73.96.74 7 72.98.87.73.96.74.90 + 7 98.87.73.96.74.90.75 7 87.73.96.74.90.75.91 7 73.96.74.90.75.91.69 + 7 96.74.90.75.91.69.39 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 + 5 75.91.69.39.7 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} + 3 96.97.84 4 96.97.84.86 5 96.97.84.86.32 6 96.97.84.86.32.25 + 7 96.97.84.86.32.25.89 7 97.84.86.32.25.89.29 7 84.86.32.25.89.29.9 + 7 86.32.25.89.29.9.21 7 32.25.89.29.9.21.12 7 25.89.29.9.21.12.88 + 7 89.29.9.21.12.88.55 7 29.9.21.12.88.55.70 7 9.21.12.88.55.70.58 + 7 21.12.88.55.70.58.81 7 12.88.55.70.58.81.91 7 88.55.70.58.81.91.52 + 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 5 58.81.91.52.58 3 {} + 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} 3 38.46.23 4 38.46.23.61 + 5 38.46.23.61.3 6 38.46.23.61.3.1 7 38.46.23.61.3.1.76 + 7 46.23.61.3.1.76.63 7 23.61.3.1.76.63.73 7 61.3.1.76.63.73.65 + 7 3.1.76.63.73.65.20 7 1.76.63.73.65.20.8 7 76.63.73.65.20.8.77 + 7 63.73.65.20.8.77.19 7 73.65.20.8.77.19.9 7 65.20.8.77.19.9.23 + 7 20.8.77.19.9.23.15 7 8.77.19.9.23.15.50 7 77.19.9.23.15.50.38 + 6 19.9.23.15.50.38 5 9.23.15.50.38 3 {} 4 {} 5 {} 6 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 6 {} 5 {} 3 39.54.16 4 39.54.16.85 5 39.54.16.85.22 + 6 39.54.16.85.22.40 7 39.54.16.85.22.40.4 7 54.16.85.22.40.4.87 + 7 16.85.22.40.4.87.65 7 85.22.40.4.87.65.5 7 22.40.4.87.65.5.31 + 7 40.4.87.65.5.31.49 7 4.87.65.5.31.49.2 7 87.65.5.31.49.2.26 + 7 65.5.31.49.2.26.72 7 5.31.49.2.26.72.13 7 31.49.2.26.72.13.36 + 7 49.2.26.72.13.36.10 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 + 5 72.13.36.10.83 3 {} 4 {} 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 6 {} 5 {} + 3 91.8.65 4 91.8.65.85 5 91.8.65.85.55 6 91.8.65.85.55.56 + 7 91.8.65.85.55.56.42 7 8.65.85.55.56.42.80 7 65.85.55.56.42.80.58 + 7 85.55.56.42.80.58.11 7 55.56.42.80.58.11.95 7 56.42.80.58.11.95.90 + 7 42.80.58.11.95.90.85 7 80.58.11.95.90.85.47 7 58.11.95.90.85.47.33 + 7 11.95.90.85.47.33.14 7 95.90.85.47.33.14.3 7 90.85.47.33.14.3.33 + 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 5 33.14.3.33.82 3 {} 4 {} + 5 {} 6 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} 7 {} + 7 {} 7 {} 7 {} 7 {} 6 {} 5 {}} do_execsql_test 1.12.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {74 99 99 99 99 99 89 96 96 96 96 96 68 91 91 91 99 99 99 99 99 97 97 97 97 97 97 93 93 93 93 84 93 93 93 93 93 86 86 86 91 91 91 91 91 85 85 85 59 59 91 91 91 91 91 90 90 89 89 89 89 56 56 56 56 75 75 89 98 98 98 98 98 94 94 94 94 78 78 78 63 87 87 87 87 87 84 84 84 73 95 95 95 95 96 98 98 98 98 98 74 74 74 73 73 87 87 87 87 87 41 31 31 95 95 95 95 95 88 88 88 88 49 90 90 96 96 96 96 96 77 77 77 85 85 85 85 85 74 74 70 70 59 47 80 90 90 90 90 90 72 72 72 72 93 93 93 93 93 81 81 81 37 37 62 91 91 91 91 91 91 91 99 99 99 99 99 95 95 69 84 84 84 84 84 84 84 58 58 58 58 83 83 83 83 83 82 82 17 7 5} +} {96 96 96 68 91 91 91 99 99 99 99 99 97 97 97 + 97 97 97 93 93 93 93 84 93 93 93 93 93 86 86 + 86 91 91 91 91 91 85 85 85 59 59 91 91 91 91 + 91 90 90 89 89 89 89 56 56 56 56 75 75 89 98 + 98 98 98 98 94 94 94 94 78 78 78 63 87 87 87 + 87 87 84 84 84 73 95 95 95 95 96 98 98 98 98 + 98 74 74 74 73 73 87 87 87 87 87 41 31 31 95 + 95 95 95 95 88 88 88 88 49 90 90 96 96 96 96 + 96 77 77 77 85 85 85 85 85 74 74 70 70 59 47 + 80 90 90 90 90 90 72 72 72 72 93 93 93 93 93 + 81 81 81 37 37 62 91 91 91 91 91 91 91 99 99 + 99 99 99 95 95 69 84 84 84 84 84 84 84 58 58 + 58 58 83 83 83 83 83 82 82 17 7} do_execsql_test 1.12.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 23 23 23 2 2 2 2 2 38 38 38 38 38 39 6 6 6 6 6 27 27 27 8 8 8 8 8 29 23 16 16 16 16 16 16 7 7 7 7 7 61 24 24 24 24 12 12 12 3 3 3 3 3 15 15 15 15 15 1 1 1 1 1 16 16 16 16 16 36 36 4 4 4 4 4 30 29 29 29 2 2 2 2 2 37 37 9 9 9 9 9 13 13 13 13 1 1 1 1 1 5 5 5 5 5 11 11 8 8 8 8 8 15 15 15 15 22 22 8 8 8 8 8 11 34 34 55 55 55 44 2 2 2 2 2 7 29 29 19 19 19 19 19 26 26 26 36 36 9 9 9 9 9 33 33 33 33 9 9 9 9 9 12 12 12 12 14 33 15 15 15 15 3 3 3 3 3 30 30 30 10 10 10 10 10 21 21 21 30 30 30 27 27 17 7 5 5 5 5 5} +} {38 38 38 38 38 39 6 6 6 6 6 27 27 27 8 8 8 + 8 8 29 23 16 16 16 16 16 16 7 7 7 7 7 61 24 + 24 24 24 12 12 12 3 3 3 3 3 15 15 15 15 15 + 1 1 1 1 1 16 16 16 16 16 36 36 4 4 4 4 4 + 30 29 29 29 2 2 2 2 2 37 37 9 9 9 9 9 13 + 13 13 13 1 1 1 1 1 5 5 5 5 5 11 11 8 8 8 + 8 8 15 15 15 15 22 22 8 8 8 8 8 11 34 34 55 + 55 55 44 2 2 2 2 2 7 29 29 19 19 19 19 19 + 26 26 26 36 36 9 9 9 9 9 33 33 33 33 9 9 9 + 9 9 12 12 12 12 14 33 15 15 15 15 3 3 3 3 3 + 30 30 30 10 10 10 10 10 21 21 21 30 30 30 27 + 27 17 7 7 7 7 7} do_execsql_test 1.12.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.12.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.12.3.3 { SELECT row_number() OVER ( ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.12.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.12.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.12.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.12.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.12.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.12.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.12.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.12.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.12.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.12.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.12.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.12.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.12.6.1 { SELECT @@ -5951,7 +21492,33 @@ do_execsql_test 1.12.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.12.7.1 { @@ -5959,11 +21526,13 @@ do_test 1.12.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5974,11 +21543,13 @@ do_test 1.12.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -5989,11 +21560,13 @@ do_test 1.12.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6004,11 +21577,13 @@ do_test 1.12.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6019,11 +21594,13 @@ do_test 1.12.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6034,11 +21611,13 @@ do_test 1.12.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6049,11 +21628,13 @@ do_test 1.12.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6064,11 +21645,13 @@ do_test 1.12.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6079,11 +21662,13 @@ do_test 1.12.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6094,11 +21679,13 @@ do_test 1.12.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6109,11 +21696,13 @@ do_test 1.12.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6124,11 +21713,13 @@ do_test 1.12.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6139,11 +21730,13 @@ do_test 1.12.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6154,11 +21747,13 @@ do_test 1.12.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6169,11 +21764,13 @@ do_test 1.12.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6184,11 +21781,13 @@ do_test 1.12.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6199,11 +21798,13 @@ do_test 1.12.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6214,11 +21815,13 @@ do_test 1.12.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6229,250 +21832,1208 @@ do_test 1.12.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.12.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206 206 206 206 206} +} {52 83 55 79 109 65 26 120 119 50 70 103 80 124 + 36 96 59 124 116 110 57 51 52 130 103 74 87 48 + 128 117 105 136 131 71 133 92 109 63 84 109 57 + 146 78 147 113 74 88 150 87 110 65 121 106 110 + 124 85 145 107 161 171 150 156 80 171 120 109 158 + 114 111 136 147 87 173 124 168 173 162 132 101 154 + 167 190 161 110 156 195 198 102 123 177 169 140 111 + 180 119 160 197 152 124 121 134 146 147 132 213 141 + 193 200 210 157 132 136 175 161 218 188 226 191 187 + 208 211 179 138 144 223 196 214 170 212 202 163 184 + 172 173 195 229 240 187 210 200 163 227 228 223 191 + 252 235 225 243 172 187 202 179 179 182 231 261 207 + 263 206 189 209 212 276 181 274 249 239 234 213 234 + 269 196 271 221 210 229 235 250 223 232 229 279 224 + 280 216 207 207 207 207 207} do_execsql_test 1.12.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {168 134 218 191 212 229 240 213 234 196 223 223 223 223 223 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 210 210 210 210 78 120 87 162 124 141 138 227 228 179 231 234 280 280 280 280 280 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 279 279 279 279 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 229 229 229 229 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 206 206 206 206 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 212 212 212 212 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 207 207 207 207 88 171 158 156 198 121 210 132 210 239 250 232 232 232 232 232 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229 229 229} +} {134 218 191 212 229 240 213 234 196 223 223 223 223 + 223 146 65 156 132 154 102 123 119 160 152 146 147 + 136 243 261 263 210 210 210 210 210 120 87 162 124 + 141 138 227 228 179 231 234 280 280 280 280 280 57 + 110 114 136 147 167 110 180 193 191 252 187 179 206 + 181 221 279 279 279 279 279 80 171 173 177 157 161 + 179 214 225 182 209 269 271 235 229 229 229 229 229 + 113 74 87 145 190 161 169 140 111 132 213 187 208 + 223 235 189 274 274 274 274 274 51 52 128 109 121 + 124 85 107 150 195 226 172 173 187 223 207 212 212 + 212 212 212 110 87 48 110 173 124 197 211 144 196 + 195 200 202 224 216 207 207 207 207 207 88 171 158 + 156 198 121 210 132 210 239 250 232 232 232 232 232 + 59 109 150 161 111 101 200 175 188 170 202 163 184 + 163 172 276 249 229 229 229 229 229} do_execsql_test 1.12.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276 276 276 276 276} +} {57 181 80 111 26 48 144 207 36 121 132 101 163 + 172 196 119 136 63 124 179 110 179 182 74 132 189 + 51 52 85 216 163 134 123 210 78 141 57 187 71 87 + 172 173 50 224 88 59 111 170 109 213 223 146 147 + 84 114 191 206 221 157 161 209 229 74 140 107 187 + 207 212 124 202 52 232 55 184 229 106 132 152 120 + 92 110 179 235 65 70 87 110 195 200 175 234 160 + 234 136 80 113 187 109 121 124 196 156 210 239 250 + 72 109 188 202 191 105 154 79 231 147 225 103 161 + 169 223 96 83 249 212 162 227 228 167 180 193 117 + 177 214 145 208 235 150 110 211 103 158 200 168 229 + 92 156 243 280 279 116 173 269 271 131 133 223 128 + 173 197 210 99 150 161 147 218 240 109 136 146 261 + 263 124 130 252 171 190 213 274 108 195 226 119 124 + 171 198 120 276 276 276 276 276} do_execsql_test 1.12.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {213 223 106 234 191 212 168 229 147 218 240 240 240 240 240 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 263 263 263 263 124 179 78 141 84 120 234 79 231 162 227 228 280 280 280 280 280 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 252 252 252 252 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 171 171 171 171 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 274 274 274 274 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 226 226 226 226 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 124 124 124 124 52 232 156 210 239 250 83 103 158 210 171 198 198 198 198 198 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276 276 276 276 276} +} {223 106 234 191 212 168 229 147 218 240 240 240 240 + 240 123 210 146 147 132 152 160 105 154 92 156 243 + 109 136 146 261 263 263 263 263 263 179 78 141 84 + 120 234 79 231 162 227 228 280 280 280 280 280 57 + 187 114 191 206 221 92 110 136 147 167 180 193 279 + 124 130 252 252 252 252 252 161 209 229 179 235 80 + 225 117 177 214 116 173 269 271 171 171 171 171 171 + 87 74 140 113 187 103 161 169 145 208 235 131 133 + 223 190 213 274 274 274 274 274 172 173 107 187 207 + 212 65 70 109 121 124 223 150 128 108 195 226 226 + 226 226 226 50 224 124 202 87 110 195 200 196 96 + 110 211 173 197 119 124 124 124 124 124 52 232 156 + 210 239 250 83 103 158 210 171 198 198 198 198 198 + 59 111 170 55 184 229 175 72 109 188 202 249 200 + 99 150 161 120 276 276 276 276 276} do_execsql_test 1.12.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229 229 229} +} {134 218 191 212 229 240 213 234 196 223 92 109 105 + 136 146 65 156 132 154 102 123 119 160 152 146 147 + 136 243 261 263 210 79 63 84 78 120 87 162 124 + 141 138 227 228 179 231 234 280 124 57 130 92 57 + 110 114 136 147 167 110 180 193 191 252 187 179 206 + 181 221 279 80 116 117 71 80 171 173 177 157 161 + 179 214 225 182 209 269 271 235 229 103 74 131 133 + 113 74 87 145 190 161 169 140 111 132 213 187 208 + 223 235 189 274 108 65 26 70 51 52 128 109 121 + 124 85 107 150 195 226 172 173 187 223 207 212 119 + 50 124 96 110 87 48 110 173 124 197 211 144 196 + 195 200 202 224 216 207 52 83 103 36 88 171 158 + 156 198 121 210 132 210 239 250 232 99 72 55 120 + 59 109 150 161 111 101 200 175 188 170 202 163 184 + 163 172 276 249 229 229 229 229 229} do_execsql_test 1.12.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.12.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} {} {} 56 {} {} {} {} {} {} {} {} {} {} {} 78 {} {} {} {} {} {} {} {} 37 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} 90 + {} {} {} {} {} {} {} {} {} 56 {} {} {} {} {} + {} {} {} {} {} {} 78 {} {} {} {} {} {} {} {} + 37 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 21 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} {} {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 13 23 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} {} {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} 54 {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.12.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.12.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 19 20 21 21 22 22 23 23 24 25 26 26 27 27 28 + 29 29 29 30 30 30 31 31 32 33 33 33 33 34 34 + 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 + 40 41 41 42 43 43 44 44 46 46 47 47 47 47 49 + 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 + 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 + 67 68 69 70 72 72 72 73 73 73 74 74 74 75 75 + 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 + 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 + 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 + 96 97 97 98 98 99 99} do_execsql_test 1.12.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 2 2 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99} +} {10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 + 11 11 21 21 31 31 41 41 51 61 61 81 81 81 91 + 91 91 91 91 2 2 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 3 3 13 13 23 23 33 33 33 33 43 43 + 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 + 34 44 44 54 64 74 74 74 84 84 84 84 94 5 15 + 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 + 85 95 95 95 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 + 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 + 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89 89 89 99 99} do_execsql_test 1.12.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.12.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.12.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.12.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.12.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.12.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.12.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.12.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.12.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.12.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0.74.41.74.23 74.41.74.23.99 41.74.23.99.26 74.23.99.26.33 23.99.26.33.2 99.26.33.2.89 26.33.2.89.81 33.2.89.81.96 2.89.81.96.59 89.81.96.59.38 81.96.59.38.68 96.59.38.68.39 59.38.68.39.62 38.68.39.62.91 68.39.62.91.46 39.62.91.46.6 62.91.46.6.99 91.46.6.99.97 46.6.99.97.27 6.99.97.27.46 99.97.27.46.78 97.27.46.78.54 27.46.78.54.97 46.78.54.97.8 78.54.97.8.67 54.97.8.67.29 97.8.67.29.93 8.67.29.93.84 67.29.93.84.77 29.93.84.77.23 93.84.77.23.16 84.77.23.16.16 77.23.16.16.93 23.16.16.93.65 16.16.93.65.35 16.93.65.35.47 93.65.35.47.7 65.35.47.7.86 35.47.7.86.74 47.7.86.74.61 7.86.74.61.91 86.74.61.91.85 74.61.91.85.24 61.91.85.24.85 91.85.24.85.43 85.24.85.43.59 24.85.43.59.12 85.43.59.12.32 43.59.12.32.56 59.12.32.56.3 12.32.56.3.91 32.56.3.91.22 56.3.91.22.90 3.91.22.90.55 91.22.90.55.15 22.90.55.15.28 90.55.15.28.89 55.15.28.89.25 15.28.89.25.47 28.89.25.47.1 89.25.47.1.56 25.47.1.56.40 47.1.56.40.43 1.56.40.43.56 56.40.43.56.16 40.43.56.16.75 43.56.16.75.36 56.16.75.36.89 16.75.36.89.98 75.36.89.98.76 36.89.98.76.81 89.98.76.81.4 98.76.81.4.94 76.81.4.94.42 81.4.94.42.30 4.94.42.30.78 94.42.30.78.33 42.30.78.33.29 30.78.33.29.53 78.33.29.53.63 33.29.53.63.2 29.53.63.2.87 53.63.2.87.37 63.2.87.37.80 2.87.37.80.84 87.37.80.84.72 37.80.84.72.41 80.84.72.41.9 84.72.41.9.61 72.41.9.61.73 41.9.61.73.95 9.61.73.95.65 61.73.95.65.13 73.95.65.13.58 95.65.13.58.96 65.13.58.96.98 13.58.96.98.1 58.96.98.1.21 96.98.1.21.74 98.1.21.74.65 1.21.74.65.35 21.74.65.35.5 74.65.35.5.73 65.35.5.73.11 35.5.73.11.51 5.73.11.51.87 73.11.51.87.41 11.51.87.41.12 51.87.41.12.8 87.41.12.8.20 41.12.8.20.31 12.8.20.31.31 8.20.31.31.15 20.31.31.15.95 31.31.15.95.22 31.15.95.22.73 15.95.22.73.79 95.22.73.79.88 22.73.79.88.34 73.79.88.34.8 79.88.34.8.11 88.34.8.11.49 34.8.11.49.34 8.11.49.34.90 11.49.34.90.59 49.34.90.59.96 34.90.59.96.60 90.59.96.60.55 59.96.60.55.75 96.60.55.75.77 60.55.75.77.44 55.75.77.44.2 75.77.44.2.7 77.44.2.7.85 44.2.7.85.57 2.7.85.57.74 7.85.57.74.29 85.57.74.29.70 57.74.29.70.59 74.29.70.59.19 29.70.59.19.39 70.59.19.39.26 59.19.39.26.26 19.39.26.26.47 39.26.26.47.80 26.26.47.80.90 26.47.80.90.36 47.80.90.36.58 80.90.36.58.47 90.36.58.47.9 36.58.47.9.72 58.47.9.72.72 47.9.72.72.66 9.72.72.66.33 72.72.66.33.93 72.66.33.93.75 66.33.93.75.64 33.93.75.64.81 93.75.64.81.9 75.64.81.9.23 64.81.9.23.37 81.9.23.37.13 9.23.37.13.12 23.37.13.12.14 37.13.12.14.62 13.12.14.62.91 12.14.62.91.36 14.62.91.36.91 62.91.36.91.33 91.36.91.33.15 36.91.33.15.34 91.33.15.34.36 33.15.34.36.99 15.34.36.99.3 34.36.99.3.95 36.99.3.95.69 99.3.95.69.58 3.95.69.58.52 95.69.58.52.30 69.58.52.30.50 58.52.30.50.84 52.30.50.84.10 30.50.84.10.84 50.84.10.84.33 84.10.84.33.21 10.84.33.21.39 84.33.21.39.44 33.21.39.44.58 21.39.44.58.30 39.44.58.30.38 44.58.30.38.34 58.30.38.34.83 30.38.34.83.27 38.34.83.27.82 34.83.27.82.17 83.27.82.17.7 27.82.17.7.5 82.17.7.5 17.7.5 7.5 5} +} {89.81.96.59.38 81.96.59.38.68 96.59.38.68.39 59.38.68.39.62 + 38.68.39.62.91 68.39.62.91.46 39.62.91.46.6 62.91.46.6.99 + 91.46.6.99.97 46.6.99.97.27 6.99.97.27.46 99.97.27.46.78 + 97.27.46.78.54 27.46.78.54.97 46.78.54.97.8 78.54.97.8.67 + 54.97.8.67.29 97.8.67.29.93 8.67.29.93.84 67.29.93.84.77 + 29.93.84.77.23 93.84.77.23.16 84.77.23.16.16 77.23.16.16.93 + 23.16.16.93.65 16.16.93.65.35 16.93.65.35.47 93.65.35.47.7 + 65.35.47.7.86 35.47.7.86.74 47.7.86.74.61 7.86.74.61.91 + 86.74.61.91.85 74.61.91.85.24 61.91.85.24.85 91.85.24.85.43 + 85.24.85.43.59 24.85.43.59.12 85.43.59.12.32 43.59.12.32.56 + 59.12.32.56.3 12.32.56.3.91 32.56.3.91.22 56.3.91.22.90 + 3.91.22.90.55 91.22.90.55.15 22.90.55.15.28 90.55.15.28.89 + 55.15.28.89.25 15.28.89.25.47 28.89.25.47.1 89.25.47.1.56 + 25.47.1.56.40 47.1.56.40.43 1.56.40.43.56 56.40.43.56.16 + 40.43.56.16.75 43.56.16.75.36 56.16.75.36.89 16.75.36.89.98 + 75.36.89.98.76 36.89.98.76.81 89.98.76.81.4 98.76.81.4.94 + 76.81.4.94.42 81.4.94.42.30 4.94.42.30.78 94.42.30.78.33 + 42.30.78.33.29 30.78.33.29.53 78.33.29.53.63 33.29.53.63.2 + 29.53.63.2.87 53.63.2.87.37 63.2.87.37.80 2.87.37.80.84 + 87.37.80.84.72 37.80.84.72.41 80.84.72.41.9 84.72.41.9.61 + 72.41.9.61.73 41.9.61.73.95 9.61.73.95.65 61.73.95.65.13 + 73.95.65.13.58 95.65.13.58.96 65.13.58.96.98 13.58.96.98.1 + 58.96.98.1.21 96.98.1.21.74 98.1.21.74.65 1.21.74.65.35 + 21.74.65.35.5 74.65.35.5.73 65.35.5.73.11 35.5.73.11.51 + 5.73.11.51.87 73.11.51.87.41 11.51.87.41.12 51.87.41.12.8 + 87.41.12.8.20 41.12.8.20.31 12.8.20.31.31 8.20.31.31.15 + 20.31.31.15.95 31.31.15.95.22 31.15.95.22.73 15.95.22.73.79 + 95.22.73.79.88 22.73.79.88.34 73.79.88.34.8 79.88.34.8.11 + 88.34.8.11.49 34.8.11.49.34 8.11.49.34.90 11.49.34.90.59 + 49.34.90.59.96 34.90.59.96.60 90.59.96.60.55 59.96.60.55.75 + 96.60.55.75.77 60.55.75.77.44 55.75.77.44.2 75.77.44.2.7 + 77.44.2.7.85 44.2.7.85.57 2.7.85.57.74 7.85.57.74.29 85.57.74.29.70 + 57.74.29.70.59 74.29.70.59.19 29.70.59.19.39 70.59.19.39.26 + 59.19.39.26.26 19.39.26.26.47 39.26.26.47.80 26.26.47.80.90 + 26.47.80.90.36 47.80.90.36.58 80.90.36.58.47 90.36.58.47.9 + 36.58.47.9.72 58.47.9.72.72 47.9.72.72.66 9.72.72.66.33 + 72.72.66.33.93 72.66.33.93.75 66.33.93.75.64 33.93.75.64.81 + 93.75.64.81.9 75.64.81.9.23 64.81.9.23.37 81.9.23.37.13 + 9.23.37.13.12 23.37.13.12.14 37.13.12.14.62 13.12.14.62.91 + 12.14.62.91.36 14.62.91.36.91 62.91.36.91.33 91.36.91.33.15 + 36.91.33.15.34 91.33.15.34.36 33.15.34.36.99 15.34.36.99.3 + 34.36.99.3.95 36.99.3.95.69 99.3.95.69.58 3.95.69.58.52 + 95.69.58.52.30 69.58.52.30.50 58.52.30.50.84 52.30.50.84.10 + 30.50.84.10.84 50.84.10.84.33 84.10.84.33.21 10.84.33.21.39 + 84.33.21.39.44 33.21.39.44.58 21.39.44.58.30 39.44.58.30.38 + 44.58.30.38.34 58.30.38.34.83 30.38.34.83.27 38.34.83.27.82 + 34.83.27.82.17 83.27.82.17.7 27.82.17.7 82.17.7 17.7 7} do_execsql_test 1.12.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0.90.40.30.80 90.40.30.80.20 40.30.80.20.90 30.80.20.90.60 80.20.90.60.70 20.90.60.70.80 90.60.70.80.90 60.70.80.90.30 70.80.90.30.50 80.90.30.50.10 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 41.81.91.61.91 81.91.61.91.91 91.61.91.91.1 61.91.91.1.81 91.91.1.81.41 91.1.81.41.61 1.81.41.61.1 81.41.61.1.21 41.61.1.21.11 61.1.21.11.51 1.21.11.51.41 21.11.51.41.31 11.51.41.31.31 51.41.31.31.11 41.31.31.11.81 31.31.11.81.91 31.11.81.91.91 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 2.62.12.32.22 62.12.32.22.42 12.32.22.42.2 32.22.42.2.72 22.42.2.72.12 42.2.72.12.22 2.72.12.22.2 72.12.22.2.72 12.22.2.72.72 22.2.72.72.12 2.72.72.12.62 72.72.12.62.52 72.12.62.52.82 12.62.52.82 62.52.82 52.82 82 23.33.93.23.93 33.93.23.93.43 93.23.93.43.3 23.93.43.3.43 93.43.3.43.33 43.3.43.33.53 3.43.33.53.63 43.33.53.63.73 33.53.63.73.13 53.63.73.13.73 63.73.13.73.73 73.13.73.73.33 13.73.73.33.93 73.73.33.93.23 73.33.93.23.13 33.93.23.13.33 93.23.13.33.3 23.13.33.3.33 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 74.74.54.84.74 74.54.84.74.24 54.84.74.24.4 84.74.24.4.94 74.24.4.94.84 24.4.94.84.74 4.94.84.74.34 94.84.74.34.34 84.74.34.34.44 74.34.34.44.74 34.34.44.74.64 34.44.74.64.14 44.74.64.14.34 74.64.14.34.84 64.14.34.84.84 14.34.84.84.44 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 65.35.85.85.55 35.85.85.55.15 85.85.55.15.25 85.55.15.25.75 55.15.25.75.95 15.25.75.95.65 25.75.95.65.65 75.95.65.65.35 95.65.65.35.5 65.65.35.5.15 65.35.5.15.95 35.5.15.95.55 5.15.95.55.75 15.95.55.75.85 95.55.75.85.75 55.75.85.75.15 75.85.75.15.95 85.75.15.95.5 75.15.95.5 15.95.5 95.5 5 26.96.46.6.46 96.46.6.46.16 46.6.46.16.16 6.46.16.16.86 46.16.16.86.56 16.16.86.56.56 16.86.56.56.56 86.56.56.56.16 56.56.56.16.36 56.56.16.36.76 56.16.36.76.96 16.36.76.96.96 36.76.96.96.26 76.96.96.26.26 96.96.26.26.36 96.26.26.36.66 26.26.36.66.36 26.36.66.36.36 36.66.36.36 66.36.36 36.36 36 97.27.97.67.77 27.97.67.77.47 97.67.77.47.7 67.77.47.7.47 77.47.7.47.87 47.7.47.87.37 7.47.87.37.87 47.87.37.87.77 87.37.87.77.7 37.87.77.7.57 87.77.7.57.47 77.7.57.47.47 7.57.47.47.37 57.47.47.37.27 47.47.37.27.17 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 38.68.78.8.28 68.78.8.28.98 78.8.28.98.78 8.28.98.78.58 28.98.78.58.98 98.78.58.98.8 78.58.98.8.88 58.98.8.88.8 98.8.88.8.58 8.88.8.58.58 88.8.58.58.58 8.58.58.58.38 58.58.58.38 58.58.38 58.38 38 99.89.59.39.99 89.59.39.99.29 59.39.99.29.59 39.99.29.59.89 99.29.59.89.89 29.59.89.89.29 59.89.89.29.9 89.89.29.9.79 89.29.9.79.49 29.9.79.49.59 9.79.49.59.29 79.49.59.29.59 49.59.29.59.19 59.29.59.19.39 29.59.19.39.9 59.19.39.9.9 19.39.9.9.99 39.9.9.99.69 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} +} {90.40.30.80.20 40.30.80.20.90 30.80.20.90.60 80.20.90.60.70 + 20.90.60.70.80 90.60.70.80.90 60.70.80.90.30 70.80.90.30.50 + 80.90.30.50.10 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 + 81.91.61.91.91 91.61.91.91.1 61.91.91.1.81 91.91.1.81.41 + 91.1.81.41.61 1.81.41.61.1 81.41.61.1.21 41.61.1.21.11 + 61.1.21.11.51 1.21.11.51.41 21.11.51.41.31 11.51.41.31.31 + 51.41.31.31.11 41.31.31.11.81 31.31.11.81.91 31.11.81.91.91 + 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 62.12.32.22.42 + 12.32.22.42.2 32.22.42.2.72 22.42.2.72.12 42.2.72.12.22 + 2.72.12.22.2 72.12.22.2.72 12.22.2.72.72 22.2.72.72.12 + 2.72.72.12.62 72.72.12.62.52 72.12.62.52.82 12.62.52.82 62.52.82 + 52.82 82 93.23.93.43.3 23.93.43.3.43 93.43.3.43.33 43.3.43.33.53 + 3.43.33.53.63 43.33.53.63.73 33.53.63.73.13 53.63.73.13.73 + 63.73.13.73.73 73.13.73.73.33 13.73.73.33.93 73.73.33.93.23 + 73.33.93.23.13 33.93.23.13.33 93.23.13.33.3 23.13.33.3.33 + 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 54.84.74.24.4 + 84.74.24.4.94 74.24.4.94.84 24.4.94.84.74 4.94.84.74.34 + 94.84.74.34.34 84.74.34.34.44 74.34.34.44.74 34.34.44.74.64 + 34.44.74.64.14 44.74.64.14.34 74.64.14.34.84 64.14.34.84.84 + 14.34.84.84.44 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 + 65.35.85.85.55 35.85.85.55.15 85.85.55.15.25 85.55.15.25.75 + 55.15.25.75.95 15.25.75.95.65 25.75.95.65.65 75.95.65.65.35 + 95.65.65.35.5 65.65.35.5.15 65.35.5.15.95 35.5.15.95.55 + 5.15.95.55.75 15.95.55.75.85 95.55.75.85.75 55.75.85.75.15 + 75.85.75.15.95 85.75.15.95 75.15.95 15.95 95 96.46.6.46.16 + 46.6.46.16.16 6.46.16.16.86 46.16.16.86.56 16.16.86.56.56 + 16.86.56.56.56 86.56.56.56.16 56.56.56.16.36 56.56.16.36.76 + 56.16.36.76.96 16.36.76.96.96 36.76.96.96.26 76.96.96.26.26 + 96.96.26.26.36 96.26.26.36.66 26.26.36.66.36 26.36.66.36.36 + 36.66.36.36 66.36.36 36.36 36 97.27.97.67.77 27.97.67.77.47 + 97.67.77.47.7 67.77.47.7.47 77.47.7.47.87 47.7.47.87.37 + 7.47.87.37.87 47.87.37.87.77 87.37.87.77.7 37.87.77.7.57 + 87.77.7.57.47 77.7.57.47.47 7.57.47.47.37 57.47.47.37.27 + 47.47.37.27.17 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 + 38.68.78.8.28 68.78.8.28.98 78.8.28.98.78 8.28.98.78.58 + 28.98.78.58.98 98.78.58.98.8 78.58.98.8.88 58.98.8.88.8 + 98.8.88.8.58 8.88.8.58.58 88.8.58.58.58 8.58.58.58.38 58.58.58.38 + 58.58.38 58.38 38 89.59.39.99.29 59.39.99.29.59 39.99.29.59.89 + 99.29.59.89.89 29.59.89.89.29 59.89.89.29.9 89.89.29.9.79 + 89.29.9.79.49 29.9.79.49.59 9.79.49.59.29 79.49.59.29.59 + 49.59.29.59.19 59.29.59.19.39 29.59.19.39.9 59.19.39.9.9 + 19.39.9.9.99 39.9.9.99.69 9.9.99.69.39 9.99.69.39 99.69.39 69.39 + 39} do_execsql_test 1.12.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0.1.1.2.2 1.1.2.2.2 1.2.2.2.3 2.2.2.3.3 2.2.3.3.4 2.3.3.4.5 3.3.4.5.5 3.4.5.5.6 4.5.5.6.7 5.5.6.7.7 5.6.7.7.7 6.7.7.7.8 7.7.7.8.8 7.7.8.8.8 7.8.8.8.9 8.8.8.9.9 8.8.9.9.9 8.9.9.9.10 9.9.9.10.11 9.9.10.11.11 9.10.11.11.12 10.11.11.12.12 11.11.12.12.12 11.12.12.12.13 12.12.12.13.13 12.12.13.13.14 12.13.13.14.15 13.13.14.15.15 13.14.15.15.15 14.15.15.15.16 15.15.15.16.16 15.15.16.16.16 15.16.16.16.17 16.16.16.17.19 16.16.17.19.20 16.17.19.20.21 17.19.20.21.21 19.20.21.21.22 20.21.21.22.22 21.21.22.22.23 21.22.22.23.23 22.22.23.23.23 22.23.23.23.24 23.23.23.24.25 23.23.24.25.26 23.24.25.26.26 24.25.26.26.26 25.26.26.26.27 26.26.26.27.27 26.26.27.27.28 26.27.27.28.29 27.27.28.29.29 27.28.29.29.29 28.29.29.29.30 29.29.29.30.30 29.29.30.30.30 29.30.30.30.31 30.30.30.31.31 30.30.31.31.32 30.31.31.32.33 31.31.32.33.33 31.32.33.33.33 32.33.33.33.33 33.33.33.33.33 33.33.33.33.34 33.33.33.34.34 33.33.34.34.34 33.34.34.34.34 34.34.34.34.35 34.34.34.35.35 34.34.35.35.36 34.35.35.36.36 35.35.36.36.36 35.36.36.36.36 36.36.36.36.37 36.36.36.37.37 36.36.37.37.38 36.37.37.38.38 37.37.38.38.39 37.38.38.39.39 38.38.39.39.39 38.39.39.39.40 39.39.39.40.41 39.39.40.41.41 39.40.41.41.41 40.41.41.41.42 41.41.41.42.43 41.41.42.43.43 41.42.43.43.44 42.43.43.44.44 43.43.44.44.46 43.44.44.46.46 44.44.46.46.47 44.46.46.47.47 46.46.47.47.47 46.47.47.47.47 47.47.47.47.49 47.47.47.49.50 47.47.49.50.51 47.49.50.51.52 49.50.51.52.53 50.51.52.53.54 51.52.53.54.55 52.53.54.55.55 53.54.55.55.56 54.55.55.56.56 55.55.56.56.56 55.56.56.56.57 56.56.56.57.58 56.56.57.58.58 56.57.58.58.58 57.58.58.58.58 58.58.58.58.59 58.58.58.59.59 58.58.59.59.59 58.59.59.59.59 59.59.59.59.60 59.59.59.60.61 59.59.60.61.61 59.60.61.61.62 60.61.61.62.62 61.61.62.62.63 61.62.62.63.64 62.62.63.64.65 62.63.64.65.65 63.64.65.65.65 64.65.65.65.66 65.65.65.66.67 65.65.66.67.68 65.66.67.68.69 66.67.68.69.70 67.68.69.70.72 68.69.70.72.72 69.70.72.72.72 70.72.72.72.73 72.72.72.73.73 72.72.73.73.73 72.73.73.73.74 73.73.73.74.74 73.73.74.74.74 73.74.74.74.74 74.74.74.74.74 74.74.74.74.75 74.74.74.75.75 74.74.75.75.75 74.75.75.75.76 75.75.75.76.77 75.75.76.77.77 75.76.77.77.78 76.77.77.78.78 77.77.78.78.79 77.78.78.79.80 78.78.79.80.80 78.79.80.80.81 79.80.80.81.81 80.80.81.81.81 80.81.81.81.82 81.81.81.82.83 81.81.82.83.84 81.82.83.84.84 82.83.84.84.84 83.84.84.84.84 84.84.84.84.85 84.84.84.85.85 84.84.85.85.85 84.85.85.85.86 85.85.85.86.87 85.85.86.87.87 85.86.87.87.88 86.87.87.88.89 87.87.88.89.89 87.88.89.89.89 88.89.89.89.90 89.89.89.90.90 89.89.90.90.90 89.90.90.90.91 90.90.90.91.91 90.90.91.91.91 90.91.91.91.91 91.91.91.91.91 91.91.91.91.93 91.91.91.93.93 91.91.93.93.93 91.93.93.93.94 93.93.93.94.95 93.93.94.95.95 93.94.95.95.95 94.95.95.95.96 95.95.95.96.96 95.95.96.96.96 95.96.96.96.97 96.96.96.97.97 96.96.97.97.98 96.97.97.98.98 97.97.98.98.99 97.98.98.99.99 98.98.99.99.99 98.99.99.99 99.99.99 99.99 99} +} {1.1.2.2.3 1.2.2.3.3 2.2.3.3.4 2.3.3.4.5 3.3.4.5.6 3.4.5.6.7 + 4.5.6.7.7 5.6.7.7.7 6.7.7.7.8 7.7.7.8.8 7.7.8.8.8 7.8.8.8.9 + 8.8.8.9.9 8.8.9.9.9 8.9.9.9.10 9.9.9.10.11 9.9.10.11.11 + 9.10.11.11.12 10.11.11.12.12 11.11.12.12.12 11.12.12.12.13 + 12.12.12.13.13 12.12.13.13.14 12.13.13.14.15 13.13.14.15.15 + 13.14.15.15.15 14.15.15.15.16 15.15.15.16.16 15.15.16.16.16 + 15.16.16.16.17 16.16.16.17.19 16.16.17.19.20 16.17.19.20.21 + 17.19.20.21.21 19.20.21.21.22 20.21.21.22.22 21.21.22.22.23 + 21.22.22.23.23 22.22.23.23.24 22.23.23.24.25 23.23.24.25.26 + 23.24.25.26.26 24.25.26.26.27 25.26.26.27.27 26.26.27.27.28 + 26.27.27.28.29 27.27.28.29.29 27.28.29.29.29 28.29.29.29.30 + 29.29.29.30.30 29.29.30.30.30 29.30.30.30.31 30.30.30.31.31 + 30.30.31.31.32 30.31.31.32.33 31.31.32.33.33 31.32.33.33.33 + 32.33.33.33.33 33.33.33.33.34 33.33.33.34.34 33.33.34.34.34 + 33.34.34.34.34 34.34.34.34.35 34.34.34.35.35 34.34.35.35.36 + 34.35.35.36.36 35.35.36.36.36 35.36.36.36.36 36.36.36.36.37 + 36.36.36.37.37 36.36.37.37.38 36.37.37.38.38 37.37.38.38.39 + 37.38.38.39.39 38.38.39.39.39 38.39.39.39.40 39.39.39.40.41 + 39.39.40.41.41 39.40.41.41.42 40.41.41.42.43 41.41.42.43.43 + 41.42.43.43.44 42.43.43.44.44 43.43.44.44.46 43.44.44.46.46 + 44.44.46.46.47 44.46.46.47.47 46.46.47.47.47 46.47.47.47.47 + 47.47.47.47.49 47.47.47.49.50 47.47.49.50.51 47.49.50.51.52 + 49.50.51.52.53 50.51.52.53.54 51.52.53.54.55 52.53.54.55.55 + 53.54.55.55.56 54.55.55.56.56 55.55.56.56.56 55.56.56.56.57 + 56.56.56.57.58 56.56.57.58.58 56.57.58.58.58 57.58.58.58.58 + 58.58.58.58.59 58.58.58.59.59 58.58.59.59.59 58.59.59.59.59 + 59.59.59.59.60 59.59.59.60.61 59.59.60.61.61 59.60.61.61.62 + 60.61.61.62.62 61.61.62.62.63 61.62.62.63.64 62.62.63.64.65 + 62.63.64.65.65 63.64.65.65.65 64.65.65.65.66 65.65.65.66.67 + 65.65.66.67.68 65.66.67.68.69 66.67.68.69.70 67.68.69.70.72 + 68.69.70.72.72 69.70.72.72.72 70.72.72.72.73 72.72.72.73.73 + 72.72.73.73.73 72.73.73.73.74 73.73.73.74.74 73.73.74.74.74 + 73.74.74.74.75 74.74.74.75.75 74.74.75.75.75 74.75.75.75.76 + 75.75.75.76.77 75.75.76.77.77 75.76.77.77.78 76.77.77.78.78 + 77.77.78.78.79 77.78.78.79.80 78.78.79.80.80 78.79.80.80.81 + 79.80.80.81.81 80.80.81.81.81 80.81.81.81.82 81.81.81.82.83 + 81.81.82.83.84 81.82.83.84.84 82.83.84.84.84 83.84.84.84.84 + 84.84.84.84.85 84.84.84.85.85 84.84.85.85.85 84.85.85.85.86 + 85.85.85.86.87 85.85.86.87.87 85.86.87.87.88 86.87.87.88.89 + 87.87.88.89.89 87.88.89.89.89 88.89.89.89.90 89.89.89.90.90 + 89.89.90.90.90 89.90.90.90.91 90.90.90.91.91 90.90.91.91.91 + 90.91.91.91.91 91.91.91.91.91 91.91.91.91.93 91.91.91.93.93 + 91.91.93.93.93 91.93.93.93.94 93.93.93.94.95 93.93.94.95.95 + 93.94.95.95.95 94.95.95.95.96 95.95.95.96.96 95.95.96.96.96 + 95.96.96.96.97 96.96.96.97.97 96.96.97.97.98 96.97.97.98.98 + 97.97.98.98.99 97.98.98.99.99 98.98.99.99 98.99.99 99.99 99} do_execsql_test 1.12.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0.10.20.30.30 10.20.30.30.30 20.30.30.30.40 30.30.30.40.50 30.30.40.50.60 30.40.50.60.70 40.50.60.70.80 50.60.70.80.80 60.70.80.80.90 70.80.80.90.90 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 1.1.11.11.21 1.11.11.21.21 11.11.21.21.31 11.21.21.31.31 21.21.31.31.41 21.31.31.41.41 31.31.41.41.41 31.41.41.41.51 41.41.41.51.61 41.41.51.61.61 41.51.61.61.81 51.61.61.81.81 61.61.81.81.81 61.81.81.81.91 81.81.81.91.91 81.81.91.91.91 81.91.91.91.91 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 2.2.2.12.12 2.2.12.12.12 2.12.12.12.22 12.12.12.22.22 12.12.22.22.32 12.22.22.32.42 22.22.32.42.52 22.32.42.52.62 32.42.52.62.62 42.52.62.62.72 52.62.62.72.72 62.62.72.72.72 62.72.72.72.82 72.72.72.82 72.72.82 72.82 82 3.3.13.13.23 3.13.13.23.23 13.13.23.23.23 13.23.23.23.33 23.23.23.33.33 23.23.33.33.33 23.33.33.33.33 33.33.33.33.33 33.33.33.33.43 33.33.33.43.43 33.33.43.43.53 33.43.43.53.63 43.43.53.63.73 43.53.63.73.73 53.63.73.73.73 63.73.73.73.83 73.73.73.83.93 73.73.83.93.93 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 4.14.24.34.34 14.24.34.34.34 24.34.34.34.34 34.34.34.34.44 34.34.34.44.44 34.34.44.44.54 34.44.44.54.64 44.44.54.64.74 44.54.64.74.74 54.64.74.74.74 64.74.74.74.74 74.74.74.74.74 74.74.74.74.84 74.74.74.84.84 74.74.84.84.84 74.84.84.84.84 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 5.5.15.15.15 5.15.15.15.25 15.15.15.25.35 15.15.25.35.35 15.25.35.35.55 25.35.35.55.55 35.35.55.55.65 35.55.55.65.65 55.55.65.65.65 55.65.65.65.75 65.65.65.75.75 65.65.75.75.75 65.75.75.75.85 75.75.75.85.85 75.75.85.85.85 75.85.85.85.95 85.85.85.95.95 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 6.16.16.16.26 16.16.16.26.26 16.16.26.26.26 16.26.26.26.36 26.26.26.36.36 26.26.36.36.36 26.36.36.36.36 36.36.36.36.46 36.36.36.46.46 36.36.46.46.56 36.46.46.56.56 46.46.56.56.56 46.56.56.56.66 56.56.56.66.76 56.56.66.76.86 56.66.76.86.96 66.76.86.96.96 76.86.96.96.96 86.96.96.96 96.96.96 96.96 96 7.7.7.17.27 7.7.17.27.27 7.17.27.27.37 17.27.27.37.37 27.27.37.37.47 27.37.37.47.47 37.37.47.47.47 37.47.47.47.47 47.47.47.47.57 47.47.47.57.67 47.47.57.67.77 47.57.67.77.77 57.67.77.77.87 67.77.77.87.87 77.77.87.87.97 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 8.8.8.28.38 8.8.28.38.38 8.28.38.38.58 28.38.38.58.58 38.38.58.58.58 38.58.58.58.58 58.58.58.58.68 58.58.58.68.78 58.58.68.78.78 58.68.78.78.88 68.78.78.88.98 78.78.88.98.98 78.88.98.98 88.98.98 98.98 98 9.9.9.19.29 9.9.19.29.29 9.19.29.29.29 19.29.29.29.39 29.29.29.39.39 29.29.39.39.39 29.39.39.39.49 39.39.39.49.59 39.39.49.59.59 39.49.59.59.59 49.59.59.59.59 59.59.59.59.69 59.59.59.69.79 59.59.69.79.89 59.69.79.89.89 69.79.89.89.89 79.89.89.89.99 89.89.89.99.99 89.89.99.99.99 89.99.99.99 99.99.99 99.99 99} +} {10.20.30.30.30 20.30.30.30.40 30.30.30.40.50 30.30.40.50.60 + 30.40.50.60.70 40.50.60.70.80 50.60.70.80.80 60.70.80.80.90 + 70.80.80.90.90 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 + 1.1.11.11.21 1.11.11.21.21 11.11.21.21.31 11.21.21.31.31 + 21.21.31.31.41 21.31.31.41.41 31.31.41.41.51 31.41.41.51.61 + 41.41.51.61.61 41.51.61.61.81 51.61.61.81.81 61.61.81.81.81 + 61.81.81.81.91 81.81.81.91.91 81.81.91.91.91 81.91.91.91.91 + 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 2.2.12.12.12 + 2.12.12.12.22 12.12.12.22.22 12.12.22.22.32 12.22.22.32.42 + 22.22.32.42.52 22.32.42.52.62 32.42.52.62.62 42.52.62.62.72 + 52.62.62.72.72 62.62.72.72.72 62.72.72.72.82 72.72.72.82 72.72.82 + 72.82 82 3.3.13.13.23 3.13.13.23.23 13.13.23.23.33 13.23.23.33.33 + 23.23.33.33.33 23.33.33.33.33 33.33.33.33.43 33.33.33.43.43 + 33.33.43.43.53 33.43.43.53.63 43.43.53.63.73 43.53.63.73.73 + 53.63.73.73.73 63.73.73.73.83 73.73.73.83.93 73.73.83.93.93 + 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 4.14.24.34.34 + 14.24.34.34.34 24.34.34.34.34 34.34.34.34.44 34.34.34.44.44 + 34.34.44.44.54 34.44.44.54.64 44.44.54.64.74 44.54.64.74.74 + 54.64.74.74.74 64.74.74.74.84 74.74.74.84.84 74.74.84.84.84 + 74.84.84.84.84 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 + 5.15.15.15.25 15.15.15.25.35 15.15.25.35.35 15.25.35.35.55 + 25.35.35.55.55 35.35.55.55.65 35.55.55.65.65 55.55.65.65.65 + 55.65.65.65.75 65.65.65.75.75 65.65.75.75.75 65.75.75.75.85 + 75.75.75.85.85 75.75.85.85.85 75.85.85.85.95 85.85.85.95.95 + 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 6.16.16.16.26 + 16.16.16.26.26 16.16.26.26.36 16.26.26.36.36 26.26.36.36.36 + 26.36.36.36.36 36.36.36.36.46 36.36.36.46.46 36.36.46.46.56 + 36.46.46.56.56 46.46.56.56.56 46.56.56.56.66 56.56.56.66.76 + 56.56.66.76.86 56.66.76.86.96 66.76.86.96.96 76.86.96.96.96 + 86.96.96.96 96.96.96 96.96 96 7.7.7.17.27 7.7.17.27.27 + 7.17.27.27.37 17.27.27.37.37 27.27.37.37.47 27.37.37.47.47 + 37.37.47.47.47 37.47.47.47.47 47.47.47.47.57 47.47.47.57.67 + 47.47.57.67.77 47.57.67.77.77 57.67.77.77.87 67.77.77.87.87 + 77.77.87.87.97 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 + 8.8.8.28.38 8.8.28.38.38 8.28.38.38.58 28.38.38.58.58 + 38.38.58.58.58 38.58.58.58.58 58.58.58.58.68 58.58.58.68.78 + 58.58.68.78.78 58.68.78.78.88 68.78.78.88.98 78.78.88.98.98 + 78.88.98.98 88.98.98 98.98 98 9.9.9.19.29 9.9.19.29.29 + 9.19.29.29.29 19.29.29.29.39 29.29.29.39.39 29.29.39.39.39 + 29.39.39.39.49 39.39.39.49.59 39.39.49.59.59 39.49.59.59.59 + 49.59.59.59.59 59.59.59.59.69 59.59.59.69.79 59.59.69.79.89 + 59.69.79.89.89 69.79.89.89.89 79.89.89.89.99 89.89.89.99.99 + 89.89.99.99 89.99.99 99.99 99} do_execsql_test 1.12.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2 -} {0.90.40.30.80 90.40.30.80.20 40.30.80.20.90 30.80.20.90.60 80.20.90.60.70 20.90.60.70.80 90.60.70.80.90 60.70.80.90.30 70.80.90.30.50 80.90.30.50.10 90.30.50.10.30 30.50.10.30.41 50.10.30.41.81 10.30.41.81.91 30.41.81.91.61 41.81.91.61.91 81.91.61.91.91 91.61.91.91.1 61.91.91.1.81 91.91.1.81.41 91.1.81.41.61 1.81.41.61.1 81.41.61.1.21 41.61.1.21.11 61.1.21.11.51 1.21.11.51.41 21.11.51.41.31 11.51.41.31.31 51.41.31.31.11 41.31.31.11.81 31.31.11.81.91 31.11.81.91.91 11.81.91.91.21 81.91.91.21.2 91.91.21.2.62 91.21.2.62.12 21.2.62.12.32 2.62.12.32.22 62.12.32.22.42 12.32.22.42.2 32.22.42.2.72 22.42.2.72.12 42.2.72.12.22 2.72.12.22.2 72.12.22.2.72 12.22.2.72.72 22.2.72.72.12 2.72.72.12.62 72.72.12.62.52 72.12.62.52.82 12.62.52.82.23 62.52.82.23.33 52.82.23.33.93 82.23.33.93.23 23.33.93.23.93 33.93.23.93.43 93.23.93.43.3 23.93.43.3.43 93.43.3.43.33 43.3.43.33.53 3.43.33.53.63 43.33.53.63.73 33.53.63.73.13 53.63.73.13.73 63.73.13.73.73 73.13.73.73.33 13.73.73.33.93 73.73.33.93.23 73.33.93.23.13 33.93.23.13.33 93.23.13.33.3 23.13.33.3.33 13.33.3.33.83 33.3.33.83.74 3.33.83.74.74 33.83.74.74.54 83.74.74.54.84 74.74.54.84.74 74.54.84.74.24 54.84.74.24.4 84.74.24.4.94 74.24.4.94.84 24.4.94.84.74 4.94.84.74.34 94.84.74.34.34 84.74.34.34.44 74.34.34.44.74 34.34.44.74.64 34.44.74.64.14 44.74.64.14.34 74.64.14.34.84 64.14.34.84.84 14.34.84.84.44 34.84.84.44.34 84.84.44.34.65 84.44.34.65.35 44.34.65.35.85 34.65.35.85.85 65.35.85.85.55 35.85.85.55.15 85.85.55.15.25 85.55.15.25.75 55.15.25.75.95 15.25.75.95.65 25.75.95.65.65 75.95.65.65.35 95.65.65.35.5 65.65.35.5.15 65.35.5.15.95 35.5.15.95.55 5.15.95.55.75 15.95.55.75.85 95.55.75.85.75 55.75.85.75.15 75.85.75.15.95 85.75.15.95.5 75.15.95.5.26 15.95.5.26.96 95.5.26.96.46 5.26.96.46.6 26.96.46.6.46 96.46.6.46.16 46.6.46.16.16 6.46.16.16.86 46.16.16.86.56 16.16.86.56.56 16.86.56.56.56 86.56.56.56.16 56.56.56.16.36 56.56.16.36.76 56.16.36.76.96 16.36.76.96.96 36.76.96.96.26 76.96.96.26.26 96.96.26.26.36 96.26.26.36.66 26.26.36.66.36 26.36.66.36.36 36.66.36.36.97 66.36.36.97.27 36.36.97.27.97 36.97.27.97.67 97.27.97.67.77 27.97.67.77.47 97.67.77.47.7 67.77.47.7.47 77.47.7.47.87 47.7.47.87.37 7.47.87.37.87 47.87.37.87.77 87.37.87.77.7 37.87.77.7.57 87.77.7.57.47 77.7.57.47.47 7.57.47.47.37 57.47.47.37.27 47.47.37.27.17 47.37.27.17.7 37.27.17.7.38 27.17.7.38.68 17.7.38.68.78 7.38.68.78.8 38.68.78.8.28 68.78.8.28.98 78.8.28.98.78 8.28.98.78.58 28.98.78.58.98 98.78.58.98.8 78.58.98.8.88 58.98.8.88.8 98.8.88.8.58 8.88.8.58.58 88.8.58.58.58 8.58.58.58.38 58.58.58.38.99 58.58.38.99.89 58.38.99.89.59 38.99.89.59.39 99.89.59.39.99 89.59.39.99.29 59.39.99.29.59 39.99.29.59.89 99.29.59.89.89 29.59.89.89.29 59.89.89.29.9 89.89.29.9.79 89.29.9.79.49 29.9.79.49.59 9.79.49.59.29 79.49.59.29.59 49.59.29.59.19 59.29.59.19.39 29.59.19.39.9 59.19.39.9.9 19.39.9.9.99 39.9.9.99.69 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} +} {90.40.30.80.20 40.30.80.20.90 30.80.20.90.60 80.20.90.60.70 + 20.90.60.70.80 90.60.70.80.90 60.70.80.90.30 70.80.90.30.50 + 80.90.30.50.10 90.30.50.10.30 30.50.10.30.81 50.10.30.81.91 + 10.30.81.91.61 30.81.91.61.91 81.91.61.91.91 91.61.91.91.1 + 61.91.91.1.81 91.91.1.81.41 91.1.81.41.61 1.81.41.61.1 + 81.41.61.1.21 41.61.1.21.11 61.1.21.11.51 1.21.11.51.41 + 21.11.51.41.31 11.51.41.31.31 51.41.31.31.11 41.31.31.11.81 + 31.31.11.81.91 31.11.81.91.91 11.81.91.91.21 81.91.91.21.62 + 91.91.21.62.12 91.21.62.12.32 21.62.12.32.22 62.12.32.22.42 + 12.32.22.42.2 32.22.42.2.72 22.42.2.72.12 42.2.72.12.22 + 2.72.12.22.2 72.12.22.2.72 12.22.2.72.72 22.2.72.72.12 + 2.72.72.12.62 72.72.12.62.52 72.12.62.52.82 12.62.52.82.93 + 62.52.82.93.23 52.82.93.23.93 82.93.23.93.43 93.23.93.43.3 + 23.93.43.3.43 93.43.3.43.33 43.3.43.33.53 3.43.33.53.63 + 43.33.53.63.73 33.53.63.73.13 53.63.73.13.73 63.73.13.73.73 + 73.13.73.73.33 13.73.73.33.93 73.73.33.93.23 73.33.93.23.13 + 33.93.23.13.33 93.23.13.33.3 23.13.33.3.33 13.33.3.33.83 + 33.3.33.83.54 3.33.83.54.84 33.83.54.84.74 83.54.84.74.24 + 54.84.74.24.4 84.74.24.4.94 74.24.4.94.84 24.4.94.84.74 + 4.94.84.74.34 94.84.74.34.34 84.74.34.34.44 74.34.34.44.74 + 34.34.44.74.64 34.44.74.64.14 44.74.64.14.34 74.64.14.34.84 + 64.14.34.84.84 14.34.84.84.44 34.84.84.44.34 84.84.44.34.65 + 84.44.34.65.35 44.34.65.35.85 34.65.35.85.85 65.35.85.85.55 + 35.85.85.55.15 85.85.55.15.25 85.55.15.25.75 55.15.25.75.95 + 15.25.75.95.65 25.75.95.65.65 75.95.65.65.35 95.65.65.35.5 + 65.65.35.5.15 65.35.5.15.95 35.5.15.95.55 5.15.95.55.75 + 15.95.55.75.85 95.55.75.85.75 55.75.85.75.15 75.85.75.15.95 + 85.75.15.95.96 75.15.95.96.46 15.95.96.46.6 95.96.46.6.46 + 96.46.6.46.16 46.6.46.16.16 6.46.16.16.86 46.16.16.86.56 + 16.16.86.56.56 16.86.56.56.56 86.56.56.56.16 56.56.56.16.36 + 56.56.16.36.76 56.16.36.76.96 16.36.76.96.96 36.76.96.96.26 + 76.96.96.26.26 96.96.26.26.36 96.26.26.36.66 26.26.36.66.36 + 26.36.66.36.36 36.66.36.36.97 66.36.36.97.27 36.36.97.27.97 + 36.97.27.97.67 97.27.97.67.77 27.97.67.77.47 97.67.77.47.7 + 67.77.47.7.47 77.47.7.47.87 47.7.47.87.37 7.47.87.37.87 + 47.87.37.87.77 87.37.87.77.7 37.87.77.7.57 87.77.7.57.47 + 77.7.57.47.47 7.57.47.47.37 57.47.47.37.27 47.47.37.27.17 + 47.37.27.17.7 37.27.17.7.38 27.17.7.38.68 17.7.38.68.78 + 7.38.68.78.8 38.68.78.8.28 68.78.8.28.98 78.8.28.98.78 + 8.28.98.78.58 28.98.78.58.98 98.78.58.98.8 78.58.98.8.88 + 58.98.8.88.8 98.8.88.8.58 8.88.8.58.58 88.8.58.58.58 8.58.58.58.38 + 58.58.58.38.89 58.58.38.89.59 58.38.89.59.39 38.89.59.39.99 + 89.59.39.99.29 59.39.99.29.59 39.99.29.59.89 99.29.59.89.89 + 29.59.89.89.29 59.89.89.29.9 89.89.29.9.79 89.29.9.79.49 + 29.9.79.49.59 9.79.49.59.29 79.49.59.29.59 49.59.29.59.19 + 59.29.59.19.39 29.59.19.39.9 59.19.39.9.9 19.39.9.9.99 39.9.9.99.69 + 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} do_execsql_test 1.12.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.12.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.12.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.12.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.12.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) -} {5 74.74 5 74.74.99 5 74.99 5 74.99.33 5 99.33 5 99.33.89 5 33.89 5 33.89.96 5 89.96 5 89.96.38 5 96.38 5 96.38.39 5 38.39 5 38.39.91 5 39.91 5 39.91.6 5 91.6 5 91.6.97 5 6.97 5 6.97.46 5 97.46 5 97.46.54 5 46.54 5 46.54.8 5 54.8 5 54.8.29 5 8.29 5 8.29.84 5 29.84 5 29.84.23 5 84.23 5 84.23.16 5 23.16 5 23.16.65 5 16.65 5 16.65.47 5 65.47 5 65.47.86 5 47.86 5 47.86.61 5 86.61 5 86.61.85 5 61.85 5 61.85.85 5 85.85 5 85.85.59 5 85.59 5 85.59.32 5 59.32 5 59.32.3 5 32.3 5 32.3.22 5 3.22 5 3.22.55 5 22.55 5 22.55.28 5 55.28 5 55.28.25 5 28.25 5 28.25.1 5 25.1 5 25.1.40 5 1.40 5 1.40.56 5 40.56 5 40.56.75 5 56.75 5 56.75.89 5 75.89 5 75.89.76 5 89.76 5 89.76.4 5 76.4 5 76.4.42 5 4.42 5 4.42.78 5 42.78 5 42.78.29 5 78.29 5 78.29.63 5 29.63 5 29.63.87 5 63.87 5 63.87.80 5 87.80 5 87.80.72 5 80.72 5 80.72.9 5 72.9 5 72.9.73 5 9.73 5 9.73.65 5 73.65 5 73.65.58 5 65.58 5 65.58.98 5 58.98 5 58.98.21 5 98.21 5 98.21.65 5 21.65 5 21.65.5 5 65.5 5 65.5.11 5 5.11 5 5.11.87 5 11.87 5 11.87.12 5 87.12 5 87.12.20 5 12.20 5 12.20.31 5 20.31 5 20.31.95 5 31.95 5 31.95.73 5 95.73 5 95.73.88 5 73.88 5 73.88.8 5 88.8 5 88.8.49 5 8.49 5 8.49.90 5 49.90 5 49.90.96 5 90.96 5 90.96.55 5 96.55 5 96.55.77 5 55.77 5 55.77.2 5 77.2 5 77.2.85 5 2.85 5 2.85.74 5 85.74 5 85.74.70 5 74.70 5 74.70.19 5 70.19 5 70.19.26 5 19.26 5 19.26.47 5 26.47 5 26.47.90 5 47.90 5 47.90.58 5 90.58 5 90.58.9 5 58.9 5 58.9.72 5 9.72 5 9.72.33 5 72.33 5 72.33.75 5 33.75 5 33.75.81 5 75.81 5 75.81.23 5 81.23 5 81.23.13 5 23.13 5 23.13.14 5 13.14 5 13.14.91 5 14.91 5 14.91.91 5 91.91 5 91.91.15 5 91.15 5 91.15.36 5 15.36 5 15.36.3 5 36.3 5 36.3.69 5 3.69 5 3.69.52 5 69.52 5 69.52.50 5 52.50 5 52.50.10 5 50.10 5 50.10.33 5 10.33 5 10.33.39 5 33.39 5 33.39.58 5 39.58 5 39.58.38 5 58.38 5 58.38.83 5 38.83 5 38.83.82 5 83.82 5 83.82.7 5 82.7 4 82.7 3 7 2 7 1 {}} +} {5 89.96.38 5 96.38 5 96.38.39 5 38.39 5 38.39.91 5 39.91 + 5 39.91.6 5 91.6 5 91.6.97 5 6.97 5 6.97.46 5 97.46 5 97.46.54 + 5 46.54 5 46.54.8 5 54.8 5 54.8.29 5 8.29 5 8.29.84 5 29.84 + 5 29.84.23 5 84.23 5 84.23.16 5 23.16 5 23.16.65 5 16.65 + 5 16.65.47 5 65.47 5 65.47.86 5 47.86 5 47.86.61 5 86.61 + 5 86.61.85 5 61.85 5 61.85.85 5 85.85 5 85.85.59 5 85.59 + 5 85.59.32 5 59.32 5 59.32.3 5 32.3 5 32.3.22 5 3.22 5 3.22.55 + 5 22.55 5 22.55.28 5 55.28 5 55.28.25 5 28.25 5 28.25.1 5 25.1 + 5 25.1.40 5 1.40 5 1.40.56 5 40.56 5 40.56.75 5 56.75 + 5 56.75.89 5 75.89 5 75.89.76 5 89.76 5 89.76.4 5 76.4 + 5 76.4.42 5 4.42 5 4.42.78 5 42.78 5 42.78.29 5 78.29 + 5 78.29.63 5 29.63 5 29.63.87 5 63.87 5 63.87.80 5 87.80 + 5 87.80.72 5 80.72 5 80.72.9 5 72.9 5 72.9.73 5 9.73 5 9.73.65 + 5 73.65 5 73.65.58 5 65.58 5 65.58.98 5 58.98 5 58.98.21 + 5 98.21 5 98.21.65 5 21.65 5 21.65.5 5 65.5 5 65.5.11 5 5.11 + 5 5.11.87 5 11.87 5 11.87.12 5 87.12 5 87.12.20 5 12.20 + 5 12.20.31 5 20.31 5 20.31.95 5 31.95 5 31.95.73 5 95.73 + 5 95.73.88 5 73.88 5 73.88.8 5 88.8 5 88.8.49 5 8.49 5 8.49.90 + 5 49.90 5 49.90.96 5 90.96 5 90.96.55 5 96.55 5 96.55.77 + 5 55.77 5 55.77.2 5 77.2 5 77.2.85 5 2.85 5 2.85.74 5 85.74 + 5 85.74.70 5 74.70 5 74.70.19 5 70.19 5 70.19.26 5 19.26 + 5 19.26.47 5 26.47 5 26.47.90 5 47.90 5 47.90.58 5 90.58 + 5 90.58.9 5 58.9 5 58.9.72 5 9.72 5 9.72.33 5 72.33 5 72.33.75 + 5 33.75 5 33.75.81 5 75.81 5 75.81.23 5 81.23 5 81.23.13 + 5 23.13 5 23.13.14 5 13.14 5 13.14.91 5 14.91 5 14.91.91 + 5 91.91 5 91.91.15 5 91.15 5 91.15.36 5 15.36 5 15.36.3 5 36.3 + 5 36.3.69 5 3.69 5 3.69.52 5 69.52 5 69.52.50 5 52.50 + 5 52.50.10 5 50.10 5 50.10.33 5 10.33 5 10.33.39 5 33.39 + 5 33.39.58 5 39.58 5 39.58.38 5 58.38 5 58.38.83 5 38.83 + 5 38.83.82 5 83.82 5 83.82.7 4 82.7 3 82.7 2 7 1 7} do_execsql_test 1.12.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) -} {5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 4 {} 3 {} 2 {} 1 {}} do_execsql_test 1.12.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) -} {5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} + 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} + 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 4 {} 3 {} 2 {} 1 {}} do_execsql_test 1.12.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) -} {5 89.6.29.47.59 5 6.29.47.59.28 5 29.47.59.28.75 5 47.59.28.75.78 5 59.28.75.78.72 5 28.75.78.72.98 5 75.78.72.98.87 5 78.72.98.87.73 5 72.98.87.73.96 5 98.87.73.96.74 5 87.73.96.74.90 5 73.96.74.90.75 5 96.74.90.75.91 5 74.90.75.91.69 5 90.75.91.69.39 5 75.91.69.39.7 4 91.69.39.7 3 69.39.7 2 39.7 1 7 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 74.96.97.84.86 5 96.97.84.86.32 5 97.84.86.32.25 5 84.86.32.25.89 5 86.32.25.89.29 5 32.25.89.29.9 5 25.89.29.9.21 5 89.29.9.21.12 5 29.9.21.12.88 5 9.21.12.88.55 5 21.12.88.55.70 5 12.88.55.70.58 5 88.55.70.58.81 5 55.70.58.81.91 5 70.58.81.91.52 5 58.81.91.52.58 4 81.91.52.58 3 91.52.58 2 52.58 1 58 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 74.38.46.23.61 5 38.46.23.61.3 5 46.23.61.3.1 5 23.61.3.1.76 5 61.3.1.76.63 5 3.1.76.63.73 5 1.76.63.73.65 5 76.63.73.65.20 5 63.73.65.20.8 5 73.65.20.8.77 5 65.20.8.77.19 5 20.8.77.19.9 5 8.77.19.9.23 5 77.19.9.23.15 5 19.9.23.15.50 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 99.39.54.16.85 5 39.54.16.85.22 5 54.16.85.22.40 5 16.85.22.40.4 5 85.22.40.4.87 5 22.40.4.87.65 5 40.4.87.65.5 5 4.87.65.5.31 5 87.65.5.31.49 5 65.5.31.49.2 5 5.31.49.2.26 5 31.49.2.26.72 5 49.2.26.72.13 5 2.26.72.13.36 5 26.72.13.36.10 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 1 83 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 33.91.8.65.85 5 91.8.65.85.55 5 8.65.85.55.56 5 65.85.55.56.42 5 85.55.56.42.80 5 55.56.42.80.58 5 56.42.80.58.11 5 42.80.58.11.95 5 80.58.11.95.90 5 58.11.95.90.85 5 11.95.90.85.47 5 95.90.85.47.33 5 90.85.47.33.14 5 85.47.33.14.3 5 47.33.14.3.33 5 33.14.3.33.82 4 14.3.33.82 3 3.33.82 2 33.82 1 82 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {5 89.6.29.47.59 5 6.29.47.59.28 5 29.47.59.28.75 5 47.59.28.75.78 + 5 59.28.75.78.72 5 28.75.78.72.98 5 75.78.72.98.87 5 78.72.98.87.73 + 5 72.98.87.73.96 5 98.87.73.96.74 5 87.73.96.74.90 5 73.96.74.90.75 + 5 96.74.90.75.91 5 74.90.75.91.69 5 90.75.91.69.39 5 75.91.69.39.7 + 4 91.69.39.7 3 69.39.7 2 39.7 1 7 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} + 3 {} 2 {} 1 {} 5 96.97.84.86.32 5 97.84.86.32.25 5 84.86.32.25.89 + 5 86.32.25.89.29 5 32.25.89.29.9 5 25.89.29.9.21 5 89.29.9.21.12 + 5 29.9.21.12.88 5 9.21.12.88.55 5 21.12.88.55.70 5 12.88.55.70.58 + 5 88.55.70.58.81 5 55.70.58.81.91 5 70.58.81.91.52 5 58.81.91.52.58 + 4 81.91.52.58 3 91.52.58 2 52.58 1 58 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 4 {} 3 {} 2 {} 1 {} 5 38.46.23.61.3 5 46.23.61.3.1 + 5 23.61.3.1.76 5 61.3.1.76.63 5 3.1.76.63.73 5 1.76.63.73.65 + 5 76.63.73.65.20 5 63.73.65.20.8 5 73.65.20.8.77 5 65.20.8.77.19 + 5 20.8.77.19.9 5 8.77.19.9.23 5 77.19.9.23.15 5 19.9.23.15.50 + 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} 5 39.54.16.85.22 + 5 54.16.85.22.40 5 16.85.22.40.4 5 85.22.40.4.87 5 22.40.4.87.65 + 5 40.4.87.65.5 5 4.87.65.5.31 5 87.65.5.31.49 5 65.5.31.49.2 + 5 5.31.49.2.26 5 31.49.2.26.72 5 49.2.26.72.13 5 2.26.72.13.36 + 5 26.72.13.36.10 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 + 1 83 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 5 91.8.65.85.55 5 8.65.85.55.56 5 65.85.55.56.42 5 85.55.56.42.80 + 5 55.56.42.80.58 5 56.42.80.58.11 5 42.80.58.11.95 5 80.58.11.95.90 + 5 58.11.95.90.85 5 11.95.90.85.47 5 95.90.85.47.33 5 90.85.47.33.14 + 5 85.47.33.14.3 5 47.33.14.3.33 5 33.14.3.33.82 4 14.3.33.82 + 3 3.33.82 2 33.82 1 82 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} + 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 5 {} 4 {} 3 {} 2 {} + 1 {}} do_execsql_test 1.13.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {74 99 99 99 33 89 89 96 96 96 68 68 68 91 91 91 99 99 99 97 78 78 97 97 97 67 93 93 93 84 77 23 93 93 93 65 47 86 86 86 91 91 91 85 85 85 59 59 56 56 91 91 91 90 90 55 89 89 89 47 56 56 56 56 56 75 75 89 98 98 98 81 94 94 94 78 78 78 53 63 63 87 87 87 84 84 84 72 61 73 95 95 95 65 96 98 98 98 74 74 74 65 73 73 73 87 87 87 41 20 31 31 31 95 95 95 79 88 88 88 34 49 49 90 90 96 96 96 75 77 77 77 44 85 85 85 74 74 70 70 59 39 39 47 80 90 90 90 58 58 72 72 72 72 93 93 93 81 81 81 37 37 37 14 62 91 91 91 91 91 34 36 99 99 99 95 95 69 58 52 84 84 84 84 84 39 44 58 58 58 38 83 83 83 82 82 17 7 5 {} {}} +} {96 68 68 68 91 91 91 99 99 99 97 78 78 97 97 + 97 67 93 93 93 84 77 23 93 93 93 65 47 86 86 + 86 91 91 91 85 85 85 59 59 56 56 91 91 91 90 + 90 55 89 89 89 47 56 56 56 56 56 75 75 89 98 + 98 98 81 94 94 94 78 78 78 53 63 63 87 87 87 + 84 84 84 72 61 73 95 95 95 65 96 98 98 98 74 + 74 74 65 73 73 73 87 87 87 41 20 31 31 31 95 + 95 95 79 88 88 88 34 49 49 90 90 96 96 96 75 + 77 77 77 44 85 85 85 74 74 70 70 59 39 39 47 + 80 90 90 90 58 58 72 72 72 72 93 93 93 81 81 + 81 37 37 37 14 62 91 91 91 91 91 34 36 99 99 + 99 95 95 69 58 52 84 84 84 84 84 39 44 58 58 + 58 38 83 83 83 82 82 17 7 {} {}} do_execsql_test 1.13.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {23 23 23 26 2 2 2 81 59 38 38 38 39 39 46 6 6 6 27 27 27 46 54 8 8 8 29 29 77 23 16 16 16 16 35 35 7 7 7 61 61 61 24 24 24 43 12 12 12 3 3 3 22 22 15 15 15 25 25 1 1 1 40 40 16 16 16 36 36 76 76 4 4 4 30 30 30 29 29 29 2 2 2 37 37 72 41 9 9 9 61 65 13 13 13 58 1 1 1 21 35 5 5 5 11 11 41 12 8 8 8 20 15 15 15 22 22 73 34 8 8 8 11 34 34 59 59 55 55 55 44 2 2 2 7 57 29 29 29 19 19 19 26 26 26 47 36 36 36 9 9 9 66 33 33 33 64 64 9 9 9 13 12 12 12 14 36 36 33 15 15 15 34 3 3 3 58 52 30 30 30 10 10 10 21 21 21 39 30 30 30 34 27 27 17 7 5 5 5 {} {}} +} {38 38 38 39 39 46 6 6 6 27 27 27 46 54 8 8 + 8 29 29 77 23 16 16 16 16 35 35 7 7 7 61 61 + 61 24 24 24 43 12 12 12 3 3 3 22 22 15 15 15 + 25 25 1 1 1 40 40 16 16 16 36 36 76 76 4 4 + 4 30 30 30 29 29 29 2 2 2 37 37 72 41 9 9 9 + 61 65 13 13 13 58 1 1 1 21 35 5 5 5 11 11 + 41 12 8 8 8 20 15 15 15 22 22 73 34 8 8 8 + 11 34 34 59 59 55 55 55 44 2 2 2 7 57 29 29 + 29 19 19 19 26 26 26 47 36 36 36 9 9 9 66 33 + 33 33 64 64 9 9 9 13 12 12 12 14 36 36 33 15 + 15 15 34 3 3 3 58 52 30 30 30 10 10 10 21 21 + 21 39 30 30 30 34 27 27 17 7 7 7 {} {}} do_execsql_test 1.13.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.13.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.13.3.3 { SELECT row_number() OVER ( ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.13.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.13.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.13.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.13.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.13.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.13.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.13.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.13.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.13.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.13.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.13.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.13.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.13.6.1 { SELECT @@ -6480,7 +23041,33 @@ do_execsql_test 1.13.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.13.7.1 { @@ -6488,11 +23075,13 @@ do_test 1.13.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6503,11 +23092,13 @@ do_test 1.13.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6518,11 +23109,13 @@ do_test 1.13.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6533,11 +23126,13 @@ do_test 1.13.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6548,11 +23143,13 @@ do_test 1.13.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6563,11 +23160,13 @@ do_test 1.13.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6578,11 +23177,13 @@ do_test 1.13.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6593,11 +23194,13 @@ do_test 1.13.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6608,11 +23211,13 @@ do_test 1.13.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6623,11 +23228,13 @@ do_test 1.13.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6638,11 +23245,13 @@ do_test 1.13.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6653,11 +23262,13 @@ do_test 1.13.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6668,11 +23279,13 @@ do_test 1.13.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6683,11 +23296,13 @@ do_test 1.13.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6698,11 +23313,13 @@ do_test 1.13.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6713,11 +23330,13 @@ do_test 1.13.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6728,11 +23347,13 @@ do_test 1.13.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6743,11 +23364,13 @@ do_test 1.13.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -6758,250 +23381,1094 @@ do_test 1.13.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.13.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {28 105 33 41 11 99 92 108 72 52 83 55 79 109 65 26 120 119 50 70 103 80 124 36 96 59 124 116 110 57 51 52 130 103 74 87 48 128 117 105 136 131 71 133 92 109 63 84 109 57 146 78 147 113 74 88 150 87 110 65 121 106 110 124 85 145 107 161 171 150 156 80 171 120 109 158 114 111 136 147 87 173 124 168 173 162 132 101 154 167 190 161 110 156 195 198 102 123 177 169 140 111 180 119 160 197 152 124 121 134 146 147 132 213 141 193 200 210 157 132 136 175 161 218 188 226 191 187 208 211 179 138 144 223 196 214 170 212 202 163 184 172 173 195 229 240 187 210 200 163 227 228 223 191 252 235 225 243 172 187 202 179 179 182 231 261 207 263 206 189 209 212 276 181 274 249 239 234 213 234 269 196 271 221 210 229 235 250 223 232 229 279 224 280 216 207 206 206 206 {} {}} +} {52 83 55 79 109 65 26 120 119 50 70 103 80 124 + 36 96 59 124 116 110 57 51 52 130 103 74 87 48 + 128 117 105 136 131 71 133 92 109 63 84 109 57 + 146 78 147 113 74 88 150 87 110 65 121 106 110 + 124 85 145 107 161 171 150 156 80 171 120 109 158 + 114 111 136 147 87 173 124 168 173 162 132 101 154 + 167 190 161 110 156 195 198 102 123 177 169 140 111 + 180 119 160 197 152 124 121 134 146 147 132 213 141 + 193 200 210 157 132 136 175 161 218 188 226 191 187 + 208 211 179 138 144 223 196 214 170 212 202 163 184 + 172 173 195 229 240 187 210 200 163 227 228 223 191 + 252 235 225 243 172 187 202 179 179 182 231 261 207 + 263 206 189 209 212 276 181 274 249 239 234 213 234 + 269 196 271 221 210 229 235 250 223 232 229 279 224 + 280 216 207 207 207 {} {}} do_execsql_test 1.13.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {168 134 218 191 212 229 240 213 234 196 223 223 223 {} {} 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 210 210 {} {} 78 120 87 162 124 141 138 227 228 179 231 234 280 280 280 {} {} 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 279 279 {} {} 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 229 229 {} {} 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 206 206 {} {} 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 212 212 {} {} 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 207 207 {} {} 88 171 158 156 198 121 210 132 210 239 250 232 232 232 {} {} 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229 {} {}} +} {134 218 191 212 229 240 213 234 196 223 223 223 {} + {} 146 65 156 132 154 102 123 119 160 152 146 147 + 136 243 261 263 210 210 210 {} {} 120 87 162 124 + 141 138 227 228 179 231 234 280 280 280 {} {} 57 + 110 114 136 147 167 110 180 193 191 252 187 179 206 + 181 221 279 279 279 {} {} 80 171 173 177 157 161 + 179 214 225 182 209 269 271 235 229 229 229 {} {} + 113 74 87 145 190 161 169 140 111 132 213 187 208 + 223 235 189 274 274 274 {} {} 51 52 128 109 121 + 124 85 107 150 195 226 172 173 187 223 207 212 212 + 212 {} {} 110 87 48 110 173 124 197 211 144 196 + 195 200 202 224 216 207 207 207 {} {} 88 171 158 + 156 198 121 210 132 210 239 250 232 232 232 {} {} + 59 109 150 161 111 101 200 175 188 170 202 163 184 + 163 172 276 249 229 229 229 {} {}} do_execsql_test 1.13.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {87 138 57 181 80 111 206 26 48 144 207 36 121 132 101 163 172 196 119 136 63 124 179 110 179 182 74 132 189 51 52 85 216 163 134 123 210 78 141 28 57 187 71 87 33 172 173 50 224 88 59 111 170 109 213 223 146 147 84 41 114 191 206 221 157 161 209 229 74 140 107 187 207 212 124 202 52 232 55 184 229 106 44 132 152 120 92 110 179 235 65 70 87 110 195 200 175 234 160 234 136 80 113 187 109 121 124 196 156 210 239 250 72 109 188 202 191 105 154 79 231 147 225 103 161 169 223 96 83 249 212 162 227 228 167 180 193 76 78 117 177 214 145 208 235 150 110 211 103 158 200 168 229 92 156 243 280 279 116 173 269 271 131 133 223 128 173 197 210 99 150 161 147 218 240 109 136 146 261 263 124 130 252 171 190 213 274 108 195 226 119 124 171 198 105 120 276 276 276 {} {}} +} {57 181 80 111 26 48 144 207 36 121 132 101 163 + 172 196 119 136 63 124 179 110 179 182 74 132 189 + 51 52 85 216 163 134 123 210 78 141 57 187 71 87 + 172 173 50 224 88 59 111 170 109 213 223 146 147 + 84 114 191 206 221 157 161 209 229 74 140 107 187 + 207 212 124 202 52 232 55 184 229 106 132 152 120 + 92 110 179 235 65 70 87 110 195 200 175 234 160 + 234 136 80 113 187 109 121 124 196 156 210 239 250 + 72 109 188 202 191 105 154 79 231 147 225 103 161 + 169 223 96 83 249 212 162 227 228 167 180 193 117 + 177 214 145 208 235 150 110 211 103 158 200 168 229 + 92 156 243 280 279 116 173 269 271 131 133 223 128 + 173 197 210 99 150 161 147 218 240 109 136 146 261 + 263 124 130 252 171 190 213 274 108 195 226 119 124 + 171 198 120 276 276 276 {} {}} do_execsql_test 1.13.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {213 223 106 234 191 212 168 229 147 218 240 240 240 {} {} 123 210 146 147 44 132 152 160 105 154 92 156 243 109 136 146 261 263 263 263 {} {} 124 179 78 141 84 120 234 79 231 162 227 228 280 280 280 {} {} 28 57 187 41 114 191 206 221 92 110 136 147 167 180 193 279 124 130 252 252 252 {} {} 161 209 229 179 235 80 225 76 78 117 177 214 116 173 269 271 171 171 171 {} {} 189 87 74 140 113 187 103 161 169 145 208 235 131 133 223 190 213 274 274 274 {} {} 33 172 173 107 187 207 212 65 70 109 121 124 223 150 128 108 195 226 226 226 {} {} 50 224 124 202 87 110 195 200 196 96 110 211 173 197 119 124 124 124 {} {} 52 232 156 210 239 250 83 103 158 210 171 198 198 198 {} {} 59 111 170 55 184 229 175 72 109 188 202 249 200 99 150 161 105 120 276 276 276 {} {}} +} {223 106 234 191 212 168 229 147 218 240 240 240 {} + {} 123 210 146 147 132 152 160 105 154 92 156 243 + 109 136 146 261 263 263 263 {} {} 179 78 141 84 + 120 234 79 231 162 227 228 280 280 280 {} {} 57 + 187 114 191 206 221 92 110 136 147 167 180 193 279 + 124 130 252 252 252 {} {} 161 209 229 179 235 80 + 225 117 177 214 116 173 269 271 171 171 171 {} {} + 87 74 140 113 187 103 161 169 145 208 235 131 133 + 223 190 213 274 274 274 {} {} 172 173 107 187 207 + 212 65 70 109 121 124 223 150 128 108 195 226 226 + 226 {} {} 50 224 124 202 87 110 195 200 196 96 + 110 211 173 197 119 124 124 124 {} {} 52 232 156 + 210 239 250 83 103 158 210 171 198 198 198 {} {} + 59 111 170 55 184 229 175 72 109 188 202 249 200 + 99 150 161 120 276 276 276 {} {}} do_execsql_test 1.13.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {168 134 218 191 212 229 240 213 234 196 223 44 92 109 105 136 146 65 156 132 154 102 123 119 160 152 146 147 136 243 261 263 210 11 79 63 84 78 120 87 162 124 141 138 227 228 179 231 234 280 28 41 124 57 130 92 57 110 114 136 147 167 110 180 193 191 252 187 179 206 181 221 279 76 78 80 116 117 71 80 171 173 177 157 161 179 214 225 182 209 269 271 235 229 103 74 131 133 113 74 87 145 190 161 169 140 111 132 213 187 208 223 235 189 274 206 33 108 65 26 70 51 52 128 109 121 124 85 107 150 195 226 172 173 187 223 207 212 119 50 124 96 110 87 48 110 173 124 197 211 144 196 195 200 202 224 216 207 52 83 103 36 88 171 158 156 198 121 210 132 210 239 250 232 105 99 72 55 120 59 109 150 161 111 101 200 175 188 170 202 163 184 163 172 276 249 229 229 229 {} {}} +} {134 218 191 212 229 240 213 234 196 223 92 109 105 + 136 146 65 156 132 154 102 123 119 160 152 146 147 + 136 243 261 263 210 79 63 84 78 120 87 162 124 + 141 138 227 228 179 231 234 280 124 57 130 92 57 + 110 114 136 147 167 110 180 193 191 252 187 179 206 + 181 221 279 80 116 117 71 80 171 173 177 157 161 + 179 214 225 182 209 269 271 235 229 103 74 131 133 + 113 74 87 145 190 161 169 140 111 132 213 187 208 + 223 235 189 274 108 65 26 70 51 52 128 109 121 + 124 85 107 150 195 226 172 173 187 223 207 212 119 + 50 124 96 110 87 48 110 173 124 197 211 144 196 + 195 200 202 224 216 207 52 83 103 36 88 171 158 + 156 198 121 210 132 210 239 250 232 99 72 55 120 + 59 109 150 161 111 101 200 175 188 170 202 163 184 + 163 172 276 249 229 229 229 {} {}} do_execsql_test 1.13.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {41 {} {} {} {} {} {} {} 59 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 84 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 65 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 84 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 65 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {40 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 51 {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} {} {} 2 {} {} {} 62 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 51 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 2 {} {} {} 62 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 2 3 4 5 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {2 3 4 5 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {20 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 11 21 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 12 12 22 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} 11 + 21 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 22 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {40 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 51 {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} {} {} 2 {} {} {} 62 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 51 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 2 {} {} {} 62 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5 {} {}} +} {96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 + 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 + 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 + 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 + 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 + 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 + 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 + 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 + 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 + 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 + 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 + 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 + 82 17 7 {} {}} do_execsql_test 1.13.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {40 30 80 20 90 60 70 80 90 30 50 10 30 {} {} 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 {} {} 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 {} {} 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 {} {} 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 {} {} 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 {} {} 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 {} {} 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 {} {} 78 8 28 98 78 58 98 8 88 8 58 58 58 38 {} {} 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39 {} {}} +} {30 80 20 90 60 70 80 90 30 50 10 30 {} {} 61 + 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 + 91 21 {} {} 32 22 42 2 72 12 22 2 72 72 12 62 + 52 82 {} {} 93 43 3 43 33 53 63 73 13 73 73 + 33 93 23 13 33 3 33 83 {} {} 74 24 4 94 84 74 + 34 34 44 74 64 14 34 84 84 44 34 {} {} 85 85 + 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 + 15 95 {} {} 6 46 16 16 86 56 56 56 16 36 76 + 96 96 26 26 36 66 36 36 {} {} 97 67 77 47 7 + 47 87 37 87 77 7 57 47 47 37 27 17 7 {} {} 78 + 8 28 98 78 58 98 8 88 8 58 58 58 38 {} {} 39 + 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 + 99 69 39 {} {}} do_execsql_test 1.13.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99 {} {}} +} {2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 11 + 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 + 20 21 21 22 22 23 23 24 25 26 26 27 27 28 29 + 29 29 30 30 30 31 31 32 33 33 33 33 34 34 34 + 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 + 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 + 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 + 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 + 68 69 70 72 72 72 73 73 73 74 74 74 75 75 75 + 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 + 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 + 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 + 97 97 98 98 99 99 {} {}} do_execsql_test 1.13.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {20 30 30 30 40 50 60 70 80 80 90 90 90 {} {} 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 {} {} 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 {} {} 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 {} {} 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 {} {} 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 {} {} 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 {} {} 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 {} {} 8 28 38 38 58 58 58 58 68 78 78 88 98 98 {} {} 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99 {} {}} +} {30 30 30 40 50 60 70 80 80 90 90 90 {} {} 11 + 11 21 21 31 31 41 41 51 61 61 81 81 81 91 91 + 91 91 91 {} {} 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 {} {} 13 13 23 23 33 33 33 33 43 + 43 53 63 73 73 73 83 93 93 93 {} {} 24 34 34 + 34 34 44 44 54 64 74 74 74 84 84 84 84 94 {} + {} 15 15 25 35 35 55 55 65 65 65 75 75 75 85 + 85 85 95 95 95 {} {} 16 16 26 26 36 36 36 36 + 46 46 56 56 56 66 76 86 96 96 96 {} {} 7 17 + 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 + 97 {} {} 8 28 38 38 58 58 58 58 68 78 78 88 + 98 98 {} {} 9 19 29 29 29 39 39 39 49 59 59 + 59 59 69 79 89 89 89 99 99 {} {}} do_execsql_test 1.13.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39 {} {}} +} {30 80 20 90 60 70 80 90 30 50 10 30 81 91 61 + 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 + 91 21 62 12 32 22 42 2 72 12 22 2 72 72 12 62 + 52 82 93 23 93 43 3 43 33 53 63 73 13 73 73 + 33 93 23 13 33 3 33 83 54 84 74 24 4 94 84 74 + 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 + 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 + 15 95 96 46 6 46 16 16 86 56 56 56 16 36 76 + 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 + 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 + 8 28 98 78 58 98 8 88 8 58 58 58 38 89 59 39 + 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 + 99 69 39 {} {}} do_execsql_test 1.13.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.13.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.13.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.13.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.13.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.13.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.13.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {41.74.23 74.23.99 23.99.26 99.26.33 26.33.2 33.2.89 2.89.81 89.81.96 81.96.59 96.59.38 59.38.68 38.68.39 68.39.62 39.62.91 62.91.46 91.46.6 46.6.99 6.99.97 99.97.27 97.27.46 27.46.78 46.78.54 78.54.97 54.97.8 97.8.67 8.67.29 67.29.93 29.93.84 93.84.77 84.77.23 77.23.16 23.16.16 16.16.93 16.93.65 93.65.35 65.35.47 35.47.7 47.7.86 7.86.74 86.74.61 74.61.91 61.91.85 91.85.24 85.24.85 24.85.43 85.43.59 43.59.12 59.12.32 12.32.56 32.56.3 56.3.91 3.91.22 91.22.90 22.90.55 90.55.15 55.15.28 15.28.89 28.89.25 89.25.47 25.47.1 47.1.56 1.56.40 56.40.43 40.43.56 43.56.16 56.16.75 16.75.36 75.36.89 36.89.98 89.98.76 98.76.81 76.81.4 81.4.94 4.94.42 94.42.30 42.30.78 30.78.33 78.33.29 33.29.53 29.53.63 53.63.2 63.2.87 2.87.37 87.37.80 37.80.84 80.84.72 84.72.41 72.41.9 41.9.61 9.61.73 61.73.95 73.95.65 95.65.13 65.13.58 13.58.96 58.96.98 96.98.1 98.1.21 1.21.74 21.74.65 74.65.35 65.35.5 35.5.73 5.73.11 73.11.51 11.51.87 51.87.41 87.41.12 41.12.8 12.8.20 8.20.31 20.31.31 31.31.15 31.15.95 15.95.22 95.22.73 22.73.79 73.79.88 79.88.34 88.34.8 34.8.11 8.11.49 11.49.34 49.34.90 34.90.59 90.59.96 59.96.60 96.60.55 60.55.75 55.75.77 75.77.44 77.44.2 44.2.7 2.7.85 7.85.57 85.57.74 57.74.29 74.29.70 29.70.59 70.59.19 59.19.39 19.39.26 39.26.26 26.26.47 26.47.80 47.80.90 80.90.36 90.36.58 36.58.47 58.47.9 47.9.72 9.72.72 72.72.66 72.66.33 66.33.93 33.93.75 93.75.64 75.64.81 64.81.9 81.9.23 9.23.37 23.37.13 37.13.12 13.12.14 12.14.62 14.62.91 62.91.36 91.36.91 36.91.33 91.33.15 33.15.34 15.34.36 34.36.99 36.99.3 99.3.95 3.95.69 95.69.58 69.58.52 58.52.30 52.30.50 30.50.84 50.84.10 84.10.84 10.84.33 84.33.21 33.21.39 21.39.44 39.44.58 44.58.30 58.30.38 30.38.34 38.34.83 34.83.27 83.27.82 27.82.17 82.17.7 17.7.5 7.5 5 {} {}} +} {96.59.38 59.38.68 38.68.39 68.39.62 39.62.91 62.91.46 91.46.6 + 46.6.99 6.99.97 99.97.27 97.27.46 27.46.78 46.78.54 78.54.97 + 54.97.8 97.8.67 8.67.29 67.29.93 29.93.84 93.84.77 84.77.23 + 77.23.16 23.16.16 16.16.93 16.93.65 93.65.35 65.35.47 35.47.7 + 47.7.86 7.86.74 86.74.61 74.61.91 61.91.85 91.85.24 85.24.85 + 24.85.43 85.43.59 43.59.12 59.12.32 12.32.56 32.56.3 56.3.91 + 3.91.22 91.22.90 22.90.55 90.55.15 55.15.28 15.28.89 28.89.25 + 89.25.47 25.47.1 47.1.56 1.56.40 56.40.43 40.43.56 43.56.16 + 56.16.75 16.75.36 75.36.89 36.89.98 89.98.76 98.76.81 76.81.4 + 81.4.94 4.94.42 94.42.30 42.30.78 30.78.33 78.33.29 33.29.53 + 29.53.63 53.63.2 63.2.87 2.87.37 87.37.80 37.80.84 80.84.72 + 84.72.41 72.41.9 41.9.61 9.61.73 61.73.95 73.95.65 95.65.13 + 65.13.58 13.58.96 58.96.98 96.98.1 98.1.21 1.21.74 21.74.65 + 74.65.35 65.35.5 35.5.73 5.73.11 73.11.51 11.51.87 51.87.41 + 87.41.12 41.12.8 12.8.20 8.20.31 20.31.31 31.31.15 31.15.95 + 15.95.22 95.22.73 22.73.79 73.79.88 79.88.34 88.34.8 34.8.11 + 8.11.49 11.49.34 49.34.90 34.90.59 90.59.96 59.96.60 96.60.55 + 60.55.75 55.75.77 75.77.44 77.44.2 44.2.7 2.7.85 7.85.57 + 85.57.74 57.74.29 74.29.70 29.70.59 70.59.19 59.19.39 19.39.26 + 39.26.26 26.26.47 26.47.80 47.80.90 80.90.36 90.36.58 36.58.47 + 58.47.9 47.9.72 9.72.72 72.72.66 72.66.33 66.33.93 33.93.75 + 93.75.64 75.64.81 64.81.9 81.9.23 9.23.37 23.37.13 37.13.12 + 13.12.14 12.14.62 14.62.91 62.91.36 91.36.91 36.91.33 91.33.15 + 33.15.34 15.34.36 34.36.99 36.99.3 99.3.95 3.95.69 95.69.58 + 69.58.52 58.52.30 52.30.50 30.50.84 50.84.10 84.10.84 10.84.33 + 84.33.21 33.21.39 21.39.44 39.44.58 44.58.30 58.30.38 30.38.34 + 38.34.83 34.83.27 83.27.82 27.82.17 82.17.7 17.7 7 {} {}} do_execsql_test 1.13.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {40.30.80 30.80.20 80.20.90 20.90.60 90.60.70 60.70.80 70.80.90 80.90.30 90.30.50 30.50.10 50.10.30 10.30 30 {} {} 91.61.91 61.91.91 91.91.1 91.1.81 1.81.41 81.41.61 41.61.1 61.1.21 1.21.11 21.11.51 11.51.41 51.41.31 41.31.31 31.31.11 31.11.81 11.81.91 81.91.91 91.91.21 91.21 21 {} {} 12.32.22 32.22.42 22.42.2 42.2.72 2.72.12 72.12.22 12.22.2 22.2.72 2.72.72 72.72.12 72.12.62 12.62.52 62.52.82 52.82 82 {} {} 93.23.93 23.93.43 93.43.3 43.3.43 3.43.33 43.33.53 33.53.63 53.63.73 63.73.13 73.13.73 13.73.73 73.73.33 73.33.93 33.93.23 93.23.13 23.13.33 13.33.3 33.3.33 3.33.83 33.83 83 {} {} 54.84.74 84.74.24 74.24.4 24.4.94 4.94.84 94.84.74 84.74.34 74.34.34 34.34.44 34.44.74 44.74.64 74.64.14 64.14.34 14.34.84 34.84.84 84.84.44 84.44.34 44.34 34 {} {} 85.85.55 85.55.15 55.15.25 15.25.75 25.75.95 75.95.65 95.65.65 65.65.35 65.35.5 35.5.15 5.15.95 15.95.55 95.55.75 55.75.85 75.85.75 85.75.15 75.15.95 15.95.5 95.5 5 {} {} 46.6.46 6.46.16 46.16.16 16.16.86 16.86.56 86.56.56 56.56.56 56.56.16 56.16.36 16.36.76 36.76.96 76.96.96 96.96.26 96.26.26 26.26.36 26.36.66 36.66.36 66.36.36 36.36 36 {} {} 97.67.77 67.77.47 77.47.7 47.7.47 7.47.87 47.87.37 87.37.87 37.87.77 87.77.7 77.7.57 7.57.47 57.47.47 47.47.37 47.37.27 37.27.17 27.17.7 17.7 7 {} {} 78.8.28 8.28.98 28.98.78 98.78.58 78.58.98 58.98.8 98.8.88 8.88.8 88.8.58 8.58.58 58.58.58 58.58.38 58.38 38 {} {} 59.39.99 39.99.29 99.29.59 29.59.89 59.89.89 89.89.29 89.29.9 29.9.79 9.79.49 79.49.59 49.59.29 59.29.59 29.59.19 59.19.39 19.39.9 39.9.9 9.9.99 9.99.69 99.69.39 69.39 39 {} {}} +} {30.80.20 80.20.90 20.90.60 90.60.70 60.70.80 70.80.90 80.90.30 + 90.30.50 30.50.10 50.10.30 10.30 30 {} {} 61.91.91 91.91.1 + 91.1.81 1.81.41 81.41.61 41.61.1 61.1.21 1.21.11 21.11.51 + 11.51.41 51.41.31 41.31.31 31.31.11 31.11.81 11.81.91 81.91.91 + 91.91.21 91.21 21 {} {} 32.22.42 22.42.2 42.2.72 2.72.12 + 72.12.22 12.22.2 22.2.72 2.72.72 72.72.12 72.12.62 12.62.52 + 62.52.82 52.82 82 {} {} 93.43.3 43.3.43 3.43.33 43.33.53 + 33.53.63 53.63.73 63.73.13 73.13.73 13.73.73 73.73.33 73.33.93 + 33.93.23 93.23.13 23.13.33 13.33.3 33.3.33 3.33.83 33.83 83 + {} {} 74.24.4 24.4.94 4.94.84 94.84.74 84.74.34 74.34.34 + 34.34.44 34.44.74 44.74.64 74.64.14 64.14.34 14.34.84 34.84.84 + 84.84.44 84.44.34 44.34 34 {} {} 85.85.55 85.55.15 55.15.25 + 15.25.75 25.75.95 75.95.65 95.65.65 65.65.35 65.35.5 35.5.15 + 5.15.95 15.95.55 95.55.75 55.75.85 75.85.75 85.75.15 75.15.95 + 15.95 95 {} {} 6.46.16 46.16.16 16.16.86 16.86.56 86.56.56 + 56.56.56 56.56.16 56.16.36 16.36.76 36.76.96 76.96.96 96.96.26 + 96.26.26 26.26.36 26.36.66 36.66.36 66.36.36 36.36 36 {} {} + 97.67.77 67.77.47 77.47.7 47.7.47 7.47.87 47.87.37 87.37.87 + 37.87.77 87.77.7 77.7.57 7.57.47 57.47.47 47.47.37 47.37.27 + 37.27.17 27.17.7 17.7 7 {} {} 78.8.28 8.28.98 28.98.78 + 98.78.58 78.58.98 58.98.8 98.8.88 8.88.8 88.8.58 8.58.58 + 58.58.58 58.58.38 58.38 38 {} {} 39.99.29 99.29.59 29.59.89 + 59.89.89 89.89.29 89.29.9 29.9.79 9.79.49 79.49.59 49.59.29 + 59.29.59 29.59.19 59.19.39 19.39.9 39.9.9 9.9.99 9.99.69 + 99.69.39 69.39 39 {} {}} do_execsql_test 1.13.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {1.2.2 2.2.2 2.2.3 2.3.3 3.3.4 3.4.5 4.5.5 5.5.6 5.6.7 6.7.7 7.7.7 7.7.8 7.8.8 8.8.8 8.8.9 8.9.9 9.9.9 9.9.10 9.10.11 10.11.11 11.11.12 11.12.12 12.12.12 12.12.13 12.13.13 13.13.14 13.14.15 14.15.15 15.15.15 15.15.16 15.16.16 16.16.16 16.16.17 16.17.19 17.19.20 19.20.21 20.21.21 21.21.22 21.22.22 22.22.23 22.23.23 23.23.23 23.23.24 23.24.25 24.25.26 25.26.26 26.26.26 26.26.27 26.27.27 27.27.28 27.28.29 28.29.29 29.29.29 29.29.30 29.30.30 30.30.30 30.30.31 30.31.31 31.31.32 31.32.33 32.33.33 33.33.33 33.33.33 33.33.33 33.33.34 33.34.34 34.34.34 34.34.34 34.34.35 34.35.35 35.35.36 35.36.36 36.36.36 36.36.36 36.36.37 36.37.37 37.37.38 37.38.38 38.38.39 38.39.39 39.39.39 39.39.40 39.40.41 40.41.41 41.41.41 41.41.42 41.42.43 42.43.43 43.43.44 43.44.44 44.44.46 44.46.46 46.46.47 46.47.47 47.47.47 47.47.47 47.47.49 47.49.50 49.50.51 50.51.52 51.52.53 52.53.54 53.54.55 54.55.55 55.55.56 55.56.56 56.56.56 56.56.57 56.57.58 57.58.58 58.58.58 58.58.58 58.58.59 58.59.59 59.59.59 59.59.59 59.59.60 59.60.61 60.61.61 61.61.62 61.62.62 62.62.63 62.63.64 63.64.65 64.65.65 65.65.65 65.65.66 65.66.67 66.67.68 67.68.69 68.69.70 69.70.72 70.72.72 72.72.72 72.72.73 72.73.73 73.73.73 73.73.74 73.74.74 74.74.74 74.74.74 74.74.74 74.74.75 74.75.75 75.75.75 75.75.76 75.76.77 76.77.77 77.77.78 77.78.78 78.78.79 78.79.80 79.80.80 80.80.81 80.81.81 81.81.81 81.81.82 81.82.83 82.83.84 83.84.84 84.84.84 84.84.84 84.84.85 84.85.85 85.85.85 85.85.86 85.86.87 86.87.87 87.87.88 87.88.89 88.89.89 89.89.89 89.89.90 89.90.90 90.90.90 90.90.91 90.91.91 91.91.91 91.91.91 91.91.91 91.91.93 91.93.93 93.93.93 93.93.94 93.94.95 94.95.95 95.95.95 95.95.96 95.96.96 96.96.96 96.96.97 96.97.97 97.97.98 97.98.98 98.98.99 98.99.99 99.99.99 99.99 99 {} {}} +} {2.2.3 2.3.3 3.3.4 3.4.5 4.5.6 5.6.7 6.7.7 7.7.7 7.7.8 + 7.8.8 8.8.8 8.8.9 8.9.9 9.9.9 9.9.10 9.10.11 10.11.11 + 11.11.12 11.12.12 12.12.12 12.12.13 12.13.13 13.13.14 13.14.15 + 14.15.15 15.15.15 15.15.16 15.16.16 16.16.16 16.16.17 16.17.19 + 17.19.20 19.20.21 20.21.21 21.21.22 21.22.22 22.22.23 22.23.23 + 23.23.24 23.24.25 24.25.26 25.26.26 26.26.27 26.27.27 27.27.28 + 27.28.29 28.29.29 29.29.29 29.29.30 29.30.30 30.30.30 30.30.31 + 30.31.31 31.31.32 31.32.33 32.33.33 33.33.33 33.33.33 33.33.34 + 33.34.34 34.34.34 34.34.34 34.34.35 34.35.35 35.35.36 35.36.36 + 36.36.36 36.36.36 36.36.37 36.37.37 37.37.38 37.38.38 38.38.39 + 38.39.39 39.39.39 39.39.40 39.40.41 40.41.41 41.41.42 41.42.43 + 42.43.43 43.43.44 43.44.44 44.44.46 44.46.46 46.46.47 46.47.47 + 47.47.47 47.47.47 47.47.49 47.49.50 49.50.51 50.51.52 51.52.53 + 52.53.54 53.54.55 54.55.55 55.55.56 55.56.56 56.56.56 56.56.57 + 56.57.58 57.58.58 58.58.58 58.58.58 58.58.59 58.59.59 59.59.59 + 59.59.59 59.59.60 59.60.61 60.61.61 61.61.62 61.62.62 62.62.63 + 62.63.64 63.64.65 64.65.65 65.65.65 65.65.66 65.66.67 66.67.68 + 67.68.69 68.69.70 69.70.72 70.72.72 72.72.72 72.72.73 72.73.73 + 73.73.73 73.73.74 73.74.74 74.74.74 74.74.75 74.75.75 75.75.75 + 75.75.76 75.76.77 76.77.77 77.77.78 77.78.78 78.78.79 78.79.80 + 79.80.80 80.80.81 80.81.81 81.81.81 81.81.82 81.82.83 82.83.84 + 83.84.84 84.84.84 84.84.84 84.84.85 84.85.85 85.85.85 85.85.86 + 85.86.87 86.87.87 87.87.88 87.88.89 88.89.89 89.89.89 89.89.90 + 89.90.90 90.90.90 90.90.91 90.91.91 91.91.91 91.91.91 91.91.91 + 91.91.93 91.93.93 93.93.93 93.93.94 93.94.95 94.95.95 95.95.95 + 95.95.96 95.96.96 96.96.96 96.96.97 96.97.97 97.97.98 97.98.98 + 98.98.99 98.99.99 99.99 99 {} {}} do_execsql_test 1.13.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {20.30.30 30.30.30 30.30.40 30.40.50 40.50.60 50.60.70 60.70.80 70.80.80 80.80.90 80.90.90 90.90.90 90.90 90 {} {} 11.11.21 11.21.21 21.21.31 21.31.31 31.31.41 31.41.41 41.41.41 41.41.51 41.51.61 51.61.61 61.61.81 61.81.81 81.81.81 81.81.91 81.91.91 91.91.91 91.91.91 91.91.91 91.91 91 {} {} 2.12.12 12.12.12 12.12.22 12.22.22 22.22.32 22.32.42 32.42.52 42.52.62 52.62.62 62.62.72 62.72.72 72.72.72 72.72.82 72.82 82 {} {} 13.13.23 13.23.23 23.23.23 23.23.33 23.33.33 33.33.33 33.33.33 33.33.33 33.33.43 33.43.43 43.43.53 43.53.63 53.63.73 63.73.73 73.73.73 73.73.83 73.83.93 83.93.93 93.93.93 93.93 93 {} {} 24.34.34 34.34.34 34.34.34 34.34.44 34.44.44 44.44.54 44.54.64 54.64.74 64.74.74 74.74.74 74.74.74 74.74.74 74.74.84 74.84.84 84.84.84 84.84.84 84.84.94 84.94 94 {} {} 15.15.15 15.15.25 15.25.35 25.35.35 35.35.55 35.55.55 55.55.65 55.65.65 65.65.65 65.65.75 65.75.75 75.75.75 75.75.85 75.85.85 85.85.85 85.85.95 85.95.95 95.95.95 95.95 95 {} {} 16.16.26 16.26.26 26.26.26 26.26.36 26.36.36 36.36.36 36.36.36 36.36.46 36.46.46 46.46.56 46.56.56 56.56.56 56.56.66 56.66.76 66.76.86 76.86.96 86.96.96 96.96.96 96.96 96 {} {} 7.17.27 17.27.27 27.27.37 27.37.37 37.37.47 37.47.47 47.47.47 47.47.47 47.47.57 47.57.67 57.67.77 67.77.77 77.77.87 77.87.87 87.87.97 87.97.97 97.97 97 {} {} 8.28.38 28.38.38 38.38.58 38.58.58 58.58.58 58.58.58 58.58.68 58.68.78 68.78.78 78.78.88 78.88.98 88.98.98 98.98 98 {} {} 9.19.29 19.29.29 29.29.29 29.29.39 29.39.39 39.39.39 39.39.49 39.49.59 49.59.59 59.59.59 59.59.59 59.59.69 59.69.79 69.79.89 79.89.89 89.89.89 89.89.99 89.99.99 99.99.99 99.99 99 {} {}} +} {30.30.30 30.30.40 30.40.50 40.50.60 50.60.70 60.70.80 70.80.80 + 80.80.90 80.90.90 90.90.90 90.90 90 {} {} 11.11.21 11.21.21 + 21.21.31 21.31.31 31.31.41 31.41.41 41.41.51 41.51.61 51.61.61 + 61.61.81 61.81.81 81.81.81 81.81.91 81.91.91 91.91.91 91.91.91 + 91.91.91 91.91 91 {} {} 12.12.12 12.12.22 12.22.22 22.22.32 + 22.32.42 32.42.52 42.52.62 52.62.62 62.62.72 62.72.72 72.72.72 + 72.72.82 72.82 82 {} {} 13.13.23 13.23.23 23.23.33 23.33.33 + 33.33.33 33.33.33 33.33.43 33.43.43 43.43.53 43.53.63 53.63.73 + 63.73.73 73.73.73 73.73.83 73.83.93 83.93.93 93.93.93 93.93 + 93 {} {} 24.34.34 34.34.34 34.34.34 34.34.44 34.44.44 + 44.44.54 44.54.64 54.64.74 64.74.74 74.74.74 74.74.84 74.84.84 + 84.84.84 84.84.84 84.84.94 84.94 94 {} {} 15.15.25 15.25.35 + 25.35.35 35.35.55 35.55.55 55.55.65 55.65.65 65.65.65 65.65.75 + 65.75.75 75.75.75 75.75.85 75.85.85 85.85.85 85.85.95 85.95.95 + 95.95.95 95.95 95 {} {} 16.16.26 16.26.26 26.26.36 26.36.36 + 36.36.36 36.36.36 36.36.46 36.46.46 46.46.56 46.56.56 56.56.56 + 56.56.66 56.66.76 66.76.86 76.86.96 86.96.96 96.96.96 96.96 + 96 {} {} 7.17.27 17.27.27 27.27.37 27.37.37 37.37.47 + 37.47.47 47.47.47 47.47.47 47.47.57 47.57.67 57.67.77 67.77.77 + 77.77.87 77.87.87 87.87.97 87.97.97 97.97 97 {} {} 8.28.38 + 28.38.38 38.38.58 38.58.58 58.58.58 58.58.58 58.58.68 58.68.78 + 68.78.78 78.78.88 78.88.98 88.98.98 98.98 98 {} {} 9.19.29 + 19.29.29 29.29.29 29.29.39 29.39.39 39.39.39 39.39.49 39.49.59 + 49.59.59 59.59.59 59.59.59 59.59.69 59.69.79 69.79.89 79.89.89 + 89.89.89 89.89.99 89.99.99 99.99 99 {} {}} do_execsql_test 1.13.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2 -} {40.30.80 30.80.20 80.20.90 20.90.60 90.60.70 60.70.80 70.80.90 80.90.30 90.30.50 30.50.10 50.10.30 10.30.41 30.41.81 41.81.91 81.91.61 91.61.91 61.91.91 91.91.1 91.1.81 1.81.41 81.41.61 41.61.1 61.1.21 1.21.11 21.11.51 11.51.41 51.41.31 41.31.31 31.31.11 31.11.81 11.81.91 81.91.91 91.91.21 91.21.2 21.2.62 2.62.12 62.12.32 12.32.22 32.22.42 22.42.2 42.2.72 2.72.12 72.12.22 12.22.2 22.2.72 2.72.72 72.72.12 72.12.62 12.62.52 62.52.82 52.82.23 82.23.33 23.33.93 33.93.23 93.23.93 23.93.43 93.43.3 43.3.43 3.43.33 43.33.53 33.53.63 53.63.73 63.73.13 73.13.73 13.73.73 73.73.33 73.33.93 33.93.23 93.23.13 23.13.33 13.33.3 33.3.33 3.33.83 33.83.74 83.74.74 74.74.54 74.54.84 54.84.74 84.74.24 74.24.4 24.4.94 4.94.84 94.84.74 84.74.34 74.34.34 34.34.44 34.44.74 44.74.64 74.64.14 64.14.34 14.34.84 34.84.84 84.84.44 84.44.34 44.34.65 34.65.35 65.35.85 35.85.85 85.85.55 85.55.15 55.15.25 15.25.75 25.75.95 75.95.65 95.65.65 65.65.35 65.35.5 35.5.15 5.15.95 15.95.55 95.55.75 55.75.85 75.85.75 85.75.15 75.15.95 15.95.5 95.5.26 5.26.96 26.96.46 96.46.6 46.6.46 6.46.16 46.16.16 16.16.86 16.86.56 86.56.56 56.56.56 56.56.16 56.16.36 16.36.76 36.76.96 76.96.96 96.96.26 96.26.26 26.26.36 26.36.66 36.66.36 66.36.36 36.36.97 36.97.27 97.27.97 27.97.67 97.67.77 67.77.47 77.47.7 47.7.47 7.47.87 47.87.37 87.37.87 37.87.77 87.77.7 77.7.57 7.57.47 57.47.47 47.47.37 47.37.27 37.27.17 27.17.7 17.7.38 7.38.68 38.68.78 68.78.8 78.8.28 8.28.98 28.98.78 98.78.58 78.58.98 58.98.8 98.8.88 8.88.8 88.8.58 8.58.58 58.58.58 58.58.38 58.38.99 38.99.89 99.89.59 89.59.39 59.39.99 39.99.29 99.29.59 29.59.89 59.89.89 89.89.29 89.29.9 29.9.79 9.79.49 79.49.59 49.59.29 59.29.59 29.59.19 59.19.39 19.39.9 39.9.9 9.9.99 9.99.69 99.69.39 69.39 39 {} {}} +} {30.80.20 80.20.90 20.90.60 90.60.70 60.70.80 70.80.90 80.90.30 + 90.30.50 30.50.10 50.10.30 10.30.81 30.81.91 81.91.61 91.61.91 + 61.91.91 91.91.1 91.1.81 1.81.41 81.41.61 41.61.1 61.1.21 + 1.21.11 21.11.51 11.51.41 51.41.31 41.31.31 31.31.11 31.11.81 + 11.81.91 81.91.91 91.91.21 91.21.62 21.62.12 62.12.32 12.32.22 + 32.22.42 22.42.2 42.2.72 2.72.12 72.12.22 12.22.2 22.2.72 + 2.72.72 72.72.12 72.12.62 12.62.52 62.52.82 52.82.93 82.93.23 + 93.23.93 23.93.43 93.43.3 43.3.43 3.43.33 43.33.53 33.53.63 + 53.63.73 63.73.13 73.13.73 13.73.73 73.73.33 73.33.93 33.93.23 + 93.23.13 23.13.33 13.33.3 33.3.33 3.33.83 33.83.54 83.54.84 + 54.84.74 84.74.24 74.24.4 24.4.94 4.94.84 94.84.74 84.74.34 + 74.34.34 34.34.44 34.44.74 44.74.64 74.64.14 64.14.34 14.34.84 + 34.84.84 84.84.44 84.44.34 44.34.65 34.65.35 65.35.85 35.85.85 + 85.85.55 85.55.15 55.15.25 15.25.75 25.75.95 75.95.65 95.65.65 + 65.65.35 65.35.5 35.5.15 5.15.95 15.95.55 95.55.75 55.75.85 + 75.85.75 85.75.15 75.15.95 15.95.96 95.96.46 96.46.6 46.6.46 + 6.46.16 46.16.16 16.16.86 16.86.56 86.56.56 56.56.56 56.56.16 + 56.16.36 16.36.76 36.76.96 76.96.96 96.96.26 96.26.26 26.26.36 + 26.36.66 36.66.36 66.36.36 36.36.97 36.97.27 97.27.97 27.97.67 + 97.67.77 67.77.47 77.47.7 47.7.47 7.47.87 47.87.37 87.37.87 + 37.87.77 87.77.7 77.7.57 7.57.47 57.47.47 47.47.37 47.37.27 + 37.27.17 27.17.7 17.7.38 7.38.68 38.68.78 68.78.8 78.8.28 + 8.28.98 28.98.78 98.78.58 78.58.98 58.98.8 98.8.88 8.88.8 + 88.8.58 8.58.58 58.58.58 58.58.38 58.38.89 38.89.59 89.59.39 + 59.39.99 39.99.29 99.29.59 29.59.89 59.89.89 89.89.29 89.29.9 + 29.9.79 9.79.49 79.49.59 49.59.29 59.29.59 29.59.19 59.19.39 + 19.39.9 39.9.9 9.9.99 9.99.69 99.69.39 69.39 39 {} {}} do_execsql_test 1.13.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.13.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.13.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.13.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.13.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) -} {3 74 3 74.99 3 99 3 99.33 3 33 3 33.89 3 89 3 89.96 3 96 3 96.38 3 38 3 38.39 3 39 3 39.91 3 91 3 91.6 3 6 3 6.97 3 97 3 97.46 3 46 3 46.54 3 54 3 54.8 3 8 3 8.29 3 29 3 29.84 3 84 3 84.23 3 23 3 23.16 3 16 3 16.65 3 65 3 65.47 3 47 3 47.86 3 86 3 86.61 3 61 3 61.85 3 85 3 85.85 3 85 3 85.59 3 59 3 59.32 3 32 3 32.3 3 3 3 3.22 3 22 3 22.55 3 55 3 55.28 3 28 3 28.25 3 25 3 25.1 3 1 3 1.40 3 40 3 40.56 3 56 3 56.75 3 75 3 75.89 3 89 3 89.76 3 76 3 76.4 3 4 3 4.42 3 42 3 42.78 3 78 3 78.29 3 29 3 29.63 3 63 3 63.87 3 87 3 87.80 3 80 3 80.72 3 72 3 72.9 3 9 3 9.73 3 73 3 73.65 3 65 3 65.58 3 58 3 58.98 3 98 3 98.21 3 21 3 21.65 3 65 3 65.5 3 5 3 5.11 3 11 3 11.87 3 87 3 87.12 3 12 3 12.20 3 20 3 20.31 3 31 3 31.95 3 95 3 95.73 3 73 3 73.88 3 88 3 88.8 3 8 3 8.49 3 49 3 49.90 3 90 3 90.96 3 96 3 96.55 3 55 3 55.77 3 77 3 77.2 3 2 3 2.85 3 85 3 85.74 3 74 3 74.70 3 70 3 70.19 3 19 3 19.26 3 26 3 26.47 3 47 3 47.90 3 90 3 90.58 3 58 3 58.9 3 9 3 9.72 3 72 3 72.33 3 33 3 33.75 3 75 3 75.81 3 81 3 81.23 3 23 3 23.13 3 13 3 13.14 3 14 3 14.91 3 91 3 91.91 3 91 3 91.15 3 15 3 15.36 3 36 3 36.3 3 3 3 3.69 3 69 3 69.52 3 52 3 52.50 3 50 3 50.10 3 10 3 10.33 3 33 3 33.39 3 39 3 39.58 3 58 3 58.38 3 38 3 38.83 3 83 3 83.82 3 82 3 82.7 3 7 2 7 1 {} 0 {} 0 {}} +} {3 96.38 3 38 3 38.39 3 39 3 39.91 3 91 3 91.6 3 6 3 6.97 + 3 97 3 97.46 3 46 3 46.54 3 54 3 54.8 3 8 3 8.29 3 29 + 3 29.84 3 84 3 84.23 3 23 3 23.16 3 16 3 16.65 3 65 3 65.47 + 3 47 3 47.86 3 86 3 86.61 3 61 3 61.85 3 85 3 85.85 3 85 + 3 85.59 3 59 3 59.32 3 32 3 32.3 3 3 3 3.22 3 22 3 22.55 + 3 55 3 55.28 3 28 3 28.25 3 25 3 25.1 3 1 3 1.40 3 40 + 3 40.56 3 56 3 56.75 3 75 3 75.89 3 89 3 89.76 3 76 3 76.4 + 3 4 3 4.42 3 42 3 42.78 3 78 3 78.29 3 29 3 29.63 3 63 + 3 63.87 3 87 3 87.80 3 80 3 80.72 3 72 3 72.9 3 9 3 9.73 + 3 73 3 73.65 3 65 3 65.58 3 58 3 58.98 3 98 3 98.21 3 21 + 3 21.65 3 65 3 65.5 3 5 3 5.11 3 11 3 11.87 3 87 3 87.12 + 3 12 3 12.20 3 20 3 20.31 3 31 3 31.95 3 95 3 95.73 3 73 + 3 73.88 3 88 3 88.8 3 8 3 8.49 3 49 3 49.90 3 90 3 90.96 + 3 96 3 96.55 3 55 3 55.77 3 77 3 77.2 3 2 3 2.85 3 85 + 3 85.74 3 74 3 74.70 3 70 3 70.19 3 19 3 19.26 3 26 3 26.47 + 3 47 3 47.90 3 90 3 90.58 3 58 3 58.9 3 9 3 9.72 3 72 + 3 72.33 3 33 3 33.75 3 75 3 75.81 3 81 3 81.23 3 23 3 23.13 + 3 13 3 13.14 3 14 3 14.91 3 91 3 91.91 3 91 3 91.15 3 15 + 3 15.36 3 36 3 36.3 3 3 3 3.69 3 69 3 69.52 3 52 3 52.50 + 3 50 3 50.10 3 10 3 10.33 3 33 3 33.39 3 39 3 39.58 3 58 + 3 58.38 3 38 3 38.83 3 83 3 83.82 3 82 3 82.7 2 7 1 7 + 0 {} 0 {}} do_execsql_test 1.13.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) -} {3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {}} +} {3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 2 {} 1 {} 0 {} 0 {}} do_execsql_test 1.13.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) -} {3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {}} +} {3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} + 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} + 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 2 {} 1 {} 0 {} 0 {}} do_execsql_test 1.13.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) -} {3 29.47.59 3 47.59.28 3 59.28.75 3 28.75.78 3 75.78.72 3 78.72.98 3 72.98.87 3 98.87.73 3 87.73.96 3 73.96.74 3 96.74.90 3 74.90.75 3 90.75.91 3 75.91.69 3 91.69.39 3 69.39.7 2 39.7 1 7 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 97.84.86 3 84.86.32 3 86.32.25 3 32.25.89 3 25.89.29 3 89.29.9 3 29.9.21 3 9.21.12 3 21.12.88 3 12.88.55 3 88.55.70 3 55.70.58 3 70.58.81 3 58.81.91 3 81.91.52 3 91.52.58 2 52.58 1 58 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 46.23.61 3 23.61.3 3 61.3.1 3 3.1.76 3 1.76.63 3 76.63.73 3 63.73.65 3 73.65.20 3 65.20.8 3 20.8.77 3 8.77.19 3 77.19.9 3 19.9.23 3 9.23.15 3 23.15.50 3 15.50.38 2 50.38 1 38 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 54.16.85 3 16.85.22 3 85.22.40 3 22.40.4 3 40.4.87 3 4.87.65 3 87.65.5 3 65.5.31 3 5.31.49 3 31.49.2 3 49.2.26 3 2.26.72 3 26.72.13 3 72.13.36 3 13.36.10 3 36.10.83 2 10.83 1 83 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 8.65.85 3 65.85.55 3 85.55.56 3 55.56.42 3 56.42.80 3 42.80.58 3 80.58.11 3 58.11.95 3 11.95.90 3 95.90.85 3 90.85.47 3 85.47.33 3 47.33.14 3 33.14.3 3 14.3.33 3 3.33.82 2 33.82 1 82 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {}} +} {3 29.47.59 3 47.59.28 3 59.28.75 3 28.75.78 3 75.78.72 3 78.72.98 + 3 72.98.87 3 98.87.73 3 87.73.96 3 73.96.74 3 96.74.90 3 74.90.75 + 3 90.75.91 3 75.91.69 3 91.69.39 3 69.39.7 2 39.7 1 7 0 {} + 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 84.86.32 + 3 86.32.25 3 32.25.89 3 25.89.29 3 89.29.9 3 29.9.21 3 9.21.12 + 3 21.12.88 3 12.88.55 3 88.55.70 3 55.70.58 3 70.58.81 3 58.81.91 + 3 81.91.52 3 91.52.58 2 52.58 1 58 0 {} 0 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 2 {} 1 {} 0 {} 0 {} 3 23.61.3 3 61.3.1 3 3.1.76 + 3 1.76.63 3 76.63.73 3 63.73.65 3 73.65.20 3 65.20.8 3 20.8.77 + 3 8.77.19 3 77.19.9 3 19.9.23 3 9.23.15 3 23.15.50 3 15.50.38 + 2 50.38 1 38 0 {} 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} + 0 {} 0 {} 3 16.85.22 3 85.22.40 3 22.40.4 3 40.4.87 3 4.87.65 + 3 87.65.5 3 65.5.31 3 5.31.49 3 31.49.2 3 49.2.26 3 2.26.72 + 3 26.72.13 3 72.13.36 3 13.36.10 3 36.10.83 2 10.83 1 83 0 {} + 0 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 2 {} 1 {} 0 {} 0 {} 3 65.85.55 + 3 85.55.56 3 55.56.42 3 56.42.80 3 42.80.58 3 80.58.11 3 58.11.95 + 3 11.95.90 3 95.90.85 3 90.85.47 3 85.47.33 3 47.33.14 3 33.14.3 + 3 14.3.33 3 3.33.82 2 33.82 1 82 0 {} 0 {} 3 {} 3 {} 3 {} + 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} 3 {} + 3 {} 2 {} 1 {} 0 {} 0 {}} do_execsql_test 1.14.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99} do_execsql_test 1.14.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1} do_execsql_test 1.14.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.14.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.14.3.3 { SELECT row_number() OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.14.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.14.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.14.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.14.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.14.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.14.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.14.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.14.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.14.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.14.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.14.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.14.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.14.6.1 { SELECT @@ -7009,7 +24476,33 @@ do_execsql_test 1.14.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.14.7.1 { @@ -7017,11 +24510,13 @@ do_test 1.14.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7032,11 +24527,13 @@ do_test 1.14.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7047,11 +24544,13 @@ do_test 1.14.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7062,11 +24561,13 @@ do_test 1.14.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7077,11 +24578,13 @@ do_test 1.14.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7092,11 +24595,13 @@ do_test 1.14.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7107,11 +24612,13 @@ do_test 1.14.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7122,11 +24629,13 @@ do_test 1.14.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7137,11 +24646,13 @@ do_test 1.14.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7152,11 +24663,13 @@ do_test 1.14.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7167,11 +24680,13 @@ do_test 1.14.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7182,11 +24697,13 @@ do_test 1.14.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7197,11 +24714,13 @@ do_test 1.14.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7212,11 +24731,13 @@ do_test 1.14.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7227,11 +24748,13 @@ do_test 1.14.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7242,11 +24765,13 @@ do_test 1.14.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7257,11 +24782,13 @@ do_test 1.14.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7272,11 +24799,13 @@ do_test 1.14.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7287,250 +24816,2177 @@ do_test 1.14.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.14.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206} +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207} do_execsql_test 1.14.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 223 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 210 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 279 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 212 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 232 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.14.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.14.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 240 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 252 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 171 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 226 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 124 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 198 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.14.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.14.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.14.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 81 86 81 46 98 97 23 41 72 29 13 28 35 16 47 47 9 24 26 98 58 8 24 30 91 58 2 56 29 73 2 42 46 62 62 73 40 16 85 33 37 81 25 9 87 78 87 61 28 59 77 90 74 9 27 41 22 39 67 72 54 85 74 90 7 61 90 62 4 93 72 96 94 29 23 95 74 93 30 23 29 3 1 41 80 65 33 2 98 86 89 25 76 65 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33 99} +} {96 41 5 16 85 42 43 89 1 22 39 51 73 93 22 80 + 1 73 91 94 35 74 73 37 77 54 54 74 81 91 90 + 62 65 63 36 1 95 23 95 56 16 97 86 40 59 1 84 + 98 56 78 65 96 16 90 81 40 59 56 40 54 2 85 + 96 11 87 41 38 65 32 47 80 74 35 47 98 96 13 + 24 72 73 29 12 46 36 53 35 81 27 56 5 11 81 + 93 63 81 91 68 53 99 89 13 12 97 91 29 7 7 78 + 35 84 53 84 58 61 91 99 15 61 98 16 5 75 56 2 + 37 3 96 62 95 43 63 35 78 16 67 43 16 16 90 + 72 98 85 56 90 46 29 29 4 74 74 2 76 41 46 77 + 24 27 97 46 89 1 85 1 74 78 61 85 51 59 35 30 + 56 25 47 28 73 6 73 74 93 43 3 56 47 85 61 61 + 93 9 97 62} do_execsql_test 1.14.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 21 21 {} {} {} {} 21 {} {} {} 21 12 {} 72 {} {} {} 12 {} 72 {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} 73 {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} 55 {} {} {} {} {} {} 15 55 {} {} {} {} {} 55 {} 15 {} {} {} 16 {} 26 26 {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} 98 {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} 9 {} 29 29 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 91 {} 11 {} {} {} {} + 11 {} {} {} {} {} 12 {} {} {} 32 {} 12 {} 32 + {} {} 12 {} {} {} {} {} {} {} 43 {} {} {} {} + {} 33 {} {} {} {} {} 33 {} 43 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} 34 {} {} {} {} + {} {} {} {} {} {} 55 {} {} {} {} {} {} 15 55 + {} {} {} {} {} 55 {} {} {} 86 {} 26 26 {} {} + {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} + {} 27 47 {} {} {} 98 {} {} {} {} {} 98 {} 98 + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} 99 {} 9 9 {} {} {}} do_execsql_test 1.14.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 5 5 5 5 6 6 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 10 11 11 11 11 11 12 12 12 12 12 13 13 13 14 14 14 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 16 17 17 17 17 19 19 20 20 21 21 21 21 22 22 22 22 23 23 23 23 24 24 25 25 25 25 26 26 27 27 28 29 29 29 29 29 29 30 30 30 30 30 30 30 30 30 31 31 31 32 32 33 33 33 33 33 33 33 34 34 34 35 35 35 35 35 35 36 36 36 36 36 36 36 36 36 36 36 37 37 37 38 38 38 38 38 39 39 39 39 39 39 40 40 40 41 41 41 41 42 42 42 43 43 43 43 43 43 43 43 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47} +} {1 1 2 2 2 2 3 3 4 5 5 5 6 6 6 7 7 7 7 + 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 11 11 12 + 12 12 12 12 12 13 13 14 14 15 15 15 15 15 15 + 16 16 16 16 16 16 17 17 17 17 19 19 19 19 20 + 20 21 21 21 21 21 21 22 22 22 22 22 23 23 23 + 24 25 25 26 26 27 27 27 27 27 27 29 29 29 30 + 30 30 31 31 31 31 31 32 33 33 33 33 33 33 33 + 33 33 33 33 34 34 34 34 34 34 34 35 35 36 36 + 36 37 37 37 37 37 37 38 38 38 38 38 38 39 39 + 39 39 39 40 41 41 41 41 41 42 43 43 43 43 43 + 44 44 44 44 46 46 46 47 47 47 47 47 47 47 47 + 47 47 47 49 49 49 50 51 51 51 52 52 52 53 53 + 54 54 55 55} do_execsql_test 1.14.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 51 51 91 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 62 62 62 {} {} {} {} {} {} {} {} {} {} {} 13 13 43 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 25 75 75 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 66 66 66 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 + 61 61 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 12 12 72 72 72 {} {} {} {} {} {} + {} {} {} {} {} 13 13 63 63 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} 34 84 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 35 85 85 85 {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 36 76 76 76 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 + 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} + {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 74 32 31 84 91 74 3 93 84 74 31 12 90 31 22 74 64 43 64 64 90 74 22 43 90 1 30 62 22 31 31 30 74 64 64 1 40 33 50 11 81 42 40 13 50 81 40 13 13 50 33 52 24 41 81 34 41 34 2 30 2 81 82 53 33 10 33 33 81 34 41 10 81 30 81 4 3 3 23 94 3 61 80 84 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 20 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12} +} {34 2 11 34 81 34 73 33 34 34 11 82 30 11 34 + 65 13 65 65 40 34 72 13 40 41 50 93 72 81 81 + 50 34 65 65 41 73 10 91 61 12 30 54 10 61 30 + 54 54 10 73 23 44 85 1 85 22 80 22 91 93 73 + 84 30 84 84 91 85 1 30 91 80 91 74 43 64 74 + 21 20 85 64 74 21 21 2 74 33 81 21 64 64 2 21 + 93 62 14 14 3 91 11 24 55 93 93 62 90 91 55 3 + 24 14 24 91 55 15 72 60 72 61 61 34 43 43 43 + 61 12 4 15 15 51 51 12 23 12 12 25 41 25 13 + 94 12 70 12 84 32 84 94 70 33 12 12 32 41 91 + 70 22 33 84 80 31 75 84 53 75 80 84 80 53 53 + 53 22 44 63 42 95 31 63 44 44 31 90 74 52 63 + 31 63 1 42 90 90 95 3 42} do_execsql_test 1.14.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.14.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 81 + 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 + 81 81 81 81 81 62 62 62 62 62 62 62 62 62 62 + 62 62 62 62 62 62 93 93 93 93 93 93 93 93 93 + 93 93 93 93 93 93 93 93 93 93 93 93 54 54 54 + 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 + 54 65 65 65 65 65 65 65 65 65 65 65 65 65 65 + 65 65 65 65 65 65 65 96 96 96 96 96 96 96 96 + 96 96 96 96 96 96 96 96 96 96 96 96 96 97 97 + 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 + 97 97 97 38 38 38 38 38 38 38 38 38 38 38 38 + 38 38 38 38 89 89 89 89 89 89 89 89 89 89 89 + 89 89 89 89 89 89 89 89 89 89 89} do_execsql_test 1.14.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1} do_execsql_test 1.14.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9} +} {10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 + 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9} do_execsql_test 1.14.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} +} {90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 + 90 90 90 90 90 90 90 90 90 90 90} do_execsql_test 1.14.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.14.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.14.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.14.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.14.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.14.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.14.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.14.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.14.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5} +} {89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7} do_execsql_test 1.14.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.14.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99} +} {1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99} do_execsql_test 1.14.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99} +} {10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99} do_execsql_test 1.14.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39} do_execsql_test 1.14.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.14.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.14.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.14.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.14.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} +} {191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7} do_execsql_test 1.14.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {} 201 {}} +} {191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} + 191 {} 191 {} 191 {} 191 {} 191 {} 191 {} 191 {}} do_execsql_test 1.14.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {}} +} {20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} + 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} + 20 {} 20 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {}} do_execsql_test 1.14.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) -} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 21 {} 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {} 20 {}} +} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} + 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {} 19 {}} do_execsql_test 1.15.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82} +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 + 84 84 83 83 83 83 83 83 83 83 83} do_execsql_test 1.15.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7} do_execsql_test 1.15.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.15.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.15.3.3 { SELECT row_number() OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.15.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.15.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.15.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.15.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.15.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.15.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.15.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.15.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.15.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.15.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.15.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.15.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.15.6.1 { SELECT @@ -7538,7 +26994,33 @@ do_execsql_test 1.15.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.15.7.1 { @@ -7546,11 +27028,13 @@ do_test 1.15.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7561,11 +27045,13 @@ do_test 1.15.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7576,11 +27062,13 @@ do_test 1.15.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7591,11 +27079,13 @@ do_test 1.15.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7606,11 +27096,13 @@ do_test 1.15.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7621,11 +27113,13 @@ do_test 1.15.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7636,11 +27130,13 @@ do_test 1.15.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7651,11 +27147,13 @@ do_test 1.15.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7666,11 +27164,13 @@ do_test 1.15.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7681,11 +27181,13 @@ do_test 1.15.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7696,11 +27198,13 @@ do_test 1.15.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7711,11 +27215,13 @@ do_test 1.15.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7726,11 +27232,13 @@ do_test 1.15.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7741,11 +27249,13 @@ do_test 1.15.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7756,11 +27266,13 @@ do_test 1.15.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7771,11 +27283,13 @@ do_test 1.15.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7786,11 +27300,13 @@ do_test 1.15.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7801,11 +27317,13 @@ do_test 1.15.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -7816,250 +27334,2036 @@ do_test 1.15.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.15.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206} +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207} do_execsql_test 1.15.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 223 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 210 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 279 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 212 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 232 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.15.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.15.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 240 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 252 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 171 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 226 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 124 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 198 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.15.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.15.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.15.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 81 86 81 46 1 67 93 26 95 80 65 56 85 30 12 81 35 89 97 31 31 85 40 96 4 73 84 9 91 73 12 5 56 24 85 49 96 75 53 61 8 8 1 55 34 43 59 80 35 15 78 35 56 70 76 59 51 75 63 26 53 5 89 15 21 5 73 33 29 74 66 12 26 58 4 12 31 35 9 87 73 55 59 53 62 73 23 62 33 90 13 90 9 10 66 5 58 44 38 58 22 33 37 2 73 36 31 72 30 47 73 15 96 70 59 90 {} 7 21 83 {} 47 90 55 36 66 {} 50 {} 84 30 {} {} 34 77 74 {} 58 {} 13 {} 82 93 69 14 62 44 {} {} 30 {} 83 93 {} {} {} 84 {} {} {} {} 14 30 82 34 34 3 {} {} {} {} {} 84 {} {} {} 99 {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 41 5 16 85 30 12 81 35 89 97 31 31 85 40 + 96 4 73 84 9 91 73 12 5 56 24 85 49 96 75 53 + 61 8 8 1 55 34 43 59 80 35 15 78 35 56 70 76 + 59 51 75 63 26 53 5 89 15 21 5 73 33 29 74 66 + 12 26 58 4 12 31 35 9 87 73 55 59 53 62 73 23 + 62 33 90 13 90 9 10 66 5 58 44 38 58 22 33 37 + 2 73 36 31 72 30 47 73 15 96 70 59 90 {} 7 21 + 83 {} 47 90 55 36 66 {} 50 {} 84 30 {} {} 34 + 77 74 {} 58 {} 13 {} 82 93 69 14 62 44 {} {} + 30 {} 83 93 {} {} {} 84 {} {} {} {} 14 30 82 + 34 34 3 {} {} {} {} {} 84 {} {} {} 99 {} {} + {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} + {} {} {} {} {}} do_execsql_test 1.15.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} 91 {} {} {} {} {} {} {} {} {} 12 {} 72 {} {} {} 22 {} 82 {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} 33 {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 15 {} {} {} {} {} {} {} {} {} {} {} {} 16 {} 26 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 {} {} {} {} {} 47 {} {} {} {} {} {} {} {} {} {} 98 {} {} {} {} {} 58 {} 38 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 59 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} 91 {} {} {} {} + {} {} {} {} {} {} 12 {} {} {} 22 {} 82 {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} 33 {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 75 {} {} {} {} {} {} 15 {} + {} {} {} {} {} {} {} {} {} 86 {} 26 36 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 37 {} {} {} {} {} 47 {} {} {} {} + {} {} {} {} {} {} 98 {} {} {} {} {} 58 {} 38 + {} {} {} {} {} {} {} {} {} {} {} {} {} 59 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 1 1 1 2 2 3 4 5 6 7 8 8 8 9 9 10 11 12 12 13 14 15 15 16 16 17 19 21 22 22 23 23 24 25 26 27 29 29 30 30 31 32 33 33 33 34 34 34 35 36 36 36 37 38 38 39 39 40 41 41 43 44 44 46 46 47 47 47 49 50 52 53 55 55 56 56 57 58 58 58 59 59 59 61 62 62 63 65 65 66 68 69 72 72 73 73 74 74 74 75 76 77 78 80 81 81 82 83 84 84 85 85 85 86 87 88 89 89 90 90 91 91 91 93 93 95 95 95 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 1 2 2 2 3 4 6 7 8 8 8 9 9 10 11 12 12 + 13 14 15 15 16 16 17 19 21 22 22 23 24 25 26 + 27 29 29 30 30 31 32 33 33 34 34 35 35 36 36 + 37 38 38 39 39 40 41 42 43 44 46 46 47 47 47 + 49 50 51 53 54 55 56 56 56 58 58 58 59 59 59 + 60 61 62 63 65 65 66 68 69 72 72 73 73 74 74 + 75 76 77 78 80 81 81 82 84 84 84 85 85 86 87 + 87 89 89 89 90 90 91 91 91 93 93 95 95 96 96 + 97 98 99 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.15.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 51 51 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 62 62 72 {} {} {} {} {} {} {} {} {} {} {} 13 13 43 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 25 75 75 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 66 66 66 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 + 61 61 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 12 12 72 72 72 {} {} {} {} {} {} + {} {} {} {} {} 13 13 63 63 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} 34 84 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 35 85 85 85 {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 36 76 76 76 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 + 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} + {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 74 32 31 84 1 14 53 3 84 44 2 93 91 32 52 34 25 33 95 65 61 35 3 74 81 2 91 33 13 23 93 12 5 96 46 82 91 44 2 73 43 84 22 95 82 63 12 75 15 93 35 85 16 33 94 67 83 47 65 43 85 64 95 6 96 33 26 26 65 27 74 74 55 33 25 57 47 7 56 17 37 55 4 58 8 47 15 95 56 17 37 55 6 58 58 26 86 27 56 39 99 77 75 16 58 9 78 58 36 15 46 {} 78 89 9 29 56 {} 26 97 {} 78 16 28 26 36 {} 59 39 99 27 78 {} {} {} 37 27 98 {} 88 8 {} 28 {} {} {} 49 37 29 {} 59 {} {} 47 {} 69 39 59 99 8 78 9 {} {} 58 49 {} {} {} {} 58 {} 38 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 59 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 2 11 34 81 65 73 84 64 55 12 33 91 42 65 + 35 84 15 95 61 25 53 74 81 72 91 84 33 3 43 + 32 85 56 56 93 85 2 93 43 94 22 75 82 13 12 + 46 6 3 55 25 26 47 83 37 85 43 55 34 75 86 36 + 33 36 36 85 68 14 4 25 33 95 27 16 38 77 55 4 + 58 98 37 15 95 16 38 77 55 16 58 38 36 56 7 + 36 59 89 57 75 86 89 39 98 8 97 15 46 {} 28 9 + 69 49 56 {} {} 78 16 28 26 36 {} 39 99 29 27 + 78 {} {} {} 37 27 98 {} 88 8 {} 28 {} {} {} + 59 37 59 {} 89 {} {} 47 {} 39 {} 29 29 8 78 9 + {} {} 58 59 {} {} {} {} 58 {} 38 {} {} {} {} + {} {} {} {} {} {} {} {} {} 59 {} {} {} {} {} + {} {} {} {} {} {} {}} do_execsql_test 1.15.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 0 0 0 0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27} +} {89 89 89 89 89 81 96 59 38 68 39 62 91 46 6 + 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 + 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 + 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 + 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 + 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 + 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 + 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 + 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 + 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 + 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 + 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 + 39 44 58 30 38 34 83} do_execsql_test 1.15.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 0 0 0 0 90 40 30 80 20 90 60 70 80 90 41 41 41 41 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 2 2 2 2 2 62 12 32 22 42 2 72 12 22 2 72 72 23 23 23 23 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 74 74 74 74 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 65 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 26 26 26 26 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 97 97 97 97 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 38 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 99 99 99 99 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 81 + 81 81 81 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 62 62 62 62 62 12 32 22 42 2 72 + 12 22 2 72 72 93 93 93 93 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 54 54 54 54 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 65 + 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 96 96 96 96 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 97 97 97 97 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 38 + 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 89 + 89 89 89 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.15.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98} +} {1 1 1 1 1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 + 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 + 16 16 17 19 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 + 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 + 39 39 39 40 41 41 42 43 43 44 44 46 46 47 47 + 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 + 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 + 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 + 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 + 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 + 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 + 95 96 96 96 97 97} do_execsql_test 1.15.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 10 20 30 30 30 40 50 60 70 80 1 1 1 1 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 2 2 2 2 2 2 2 12 12 12 22 22 32 42 52 62 62 3 3 3 3 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 4 4 4 4 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 5 5 5 5 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 6 6 6 6 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89} +} {10 10 10 10 10 20 30 30 30 40 50 60 70 80 1 1 + 1 1 1 1 11 11 21 21 31 31 41 41 51 61 61 81 + 81 81 91 2 2 2 2 2 2 12 12 12 22 22 32 42 + 52 62 62 3 3 3 3 3 3 13 13 23 23 33 33 33 + 33 43 43 53 63 73 73 73 4 4 4 4 4 14 24 34 + 34 34 34 44 44 54 64 74 74 74 84 5 5 5 5 5 + 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 + 85 6 6 6 6 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 + 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 + 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 + 29 29 39 39 39 49 59 59 59 59 69 79 89} do_execsql_test 1.15.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 0 0 0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9} +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 30 + 50 10 30 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 81 91 91 21 62 12 32 22 42 2 72 + 12 22 2 72 72 12 62 52 82 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 33 3 33 83 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 + 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 85 75 15 95 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 + 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 + 58 58 38 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} do_execsql_test 1.15.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.15.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.15.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.15.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.15.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.15.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.15.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.15.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.15.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.39.44.58.30.38.34.83.27.82.17.7.5 39.44.58.30.38.34.83.27.82.17.7.5 44.58.30.38.34.83.27.82.17.7.5 58.30.38.34.83.27.82.17.7.5 30.38.34.83.27.82.17.7.5 38.34.83.27.82.17.7.5 34.83.27.82.17.7.5 83.27.82.17.7.5 27.82.17.7.5} +} {89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.21.39.44.58.30.38.34.83.27.82.17.7 21.39.44.58.30.38.34.83.27.82.17.7 + 39.44.58.30.38.34.83.27.82.17.7 44.58.30.38.34.83.27.82.17.7 + 58.30.38.34.83.27.82.17.7 30.38.34.83.27.82.17.7 38.34.83.27.82.17.7 + 34.83.27.82.17.7 83.27.82.17.7} do_execsql_test 1.15.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 90.40.30.80.20.90.60.70.80.90.30.50.10.30 40.30.80.20.90.60.70.80.90.30.50.10.30 30.80.20.90.60.70.80.90.30.50.10.30 80.20.90.60.70.80.90.30.50.10.30 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 90.30.50.10.30 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.61.1.21.11.51.41.31.31.11.81.91.91.21 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 31.11.81.91.91.21 11.81.91.91.21 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 32.22.42.2.72.12.22.2.72.72.12.62.52.82 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 72.72.12.62.52.82 72.12.62.52.82 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 53.63.73.13.73.73.33.93.23.13.33.3.33.83 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 23.13.33.3.33.83 13.33.3.33.83 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 94.84.74.34.34.44.74.64.14.34.84.84.44.34 84.74.34.34.44.74.64.14.34.84.84.44.34 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 34.84.84.44.34 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.5.15.95.55.75.85.75.15.95.5 35.5.15.95.55.75.85.75.15.95.5 5.15.95.55.75.85.75.15.95.5 15.95.55.75.85.75.15.95.5 95.55.75.85.75.15.95.5 55.75.85.75.15.95.5 75.85.75.15.95.5 85.75.15.95.5 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.16.36.76.96.96.26.26.36.66.36.36 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 26.36.66.36.36 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 47.47.37.27.17.7 47.37.27.17.7 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 78.8.28.98.78.58.98.8.88.8.58.58.58.38 8.28.98.78.58.98.8.88.8.58.58.58.38 28.98.78.58.98.8.88.8.58.58.58.38 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 88.8.58.58.58.38 8.58.58.58.38 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 40.30.80.20.90.60.70.80.90.30.50.10.30 + 30.80.20.90.60.70.80.90.30.50.10.30 80.20.90.60.70.80.90.30.50.10.30 + 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 + 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 + 90.30.50.10.30 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 + 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 + 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 + 31.11.81.91.91.21 11.81.91.91.21 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 + 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 + 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 + 72.72.12.62.52.82 72.12.62.52.82 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 + 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 + 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 + 23.13.33.3.33.83 13.33.3.33.83 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 + 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 + 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 + 34.84.84.44.34 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 95.65.65.35.5.15.95.55.75.85.75.15.95 65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.5.15.95.55.75.85.75.15.95 35.5.15.95.55.75.85.75.15.95 + 5.15.95.55.75.85.75.15.95 15.95.55.75.85.75.15.95 95.55.75.85.75.15.95 + 55.75.85.75.15.95 75.85.75.15.95 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 + 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 + 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 + 26.36.66.36.36 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 + 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 + 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 + 47.47.37.27.17.7 47.37.27.17.7 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 8.28.98.78.58.98.8.88.8.58.58.58.38 28.98.78.58.98.8.88.8.58.58.58.38 + 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 + 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 + 88.8.58.58.58.38 8.58.58.58.38 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39} do_execsql_test 1.15.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 94.95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.96.96.96.97.97.98.98.99.99.99 95.96.96.96.97.97.98.98.99.99.99 96.96.96.97.97.98.98.99.99.99 96.96.97.97.98.98.99.99.99 96.97.97.98.98.99.99.99 97.97.98.98.99.99.99 97.98.98.99.99.99 98.98.99.99.99} +} {1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 94.95.95.95.96.96.96.97.97.98.98.99.99 + 95.95.95.96.96.96.97.97.98.98.99.99 95.95.96.96.96.97.97.98.98.99.99 + 95.96.96.96.97.97.98.98.99.99 96.96.96.97.97.98.98.99.99 + 96.96.97.97.98.98.99.99 96.97.97.98.98.99.99 97.97.98.98.99.99 + 97.98.98.99.99} do_execsql_test 1.15.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 10.20.30.30.30.40.50.60.70.80.80.90.90.90 20.30.30.30.40.50.60.70.80.80.90.90.90 30.30.30.40.50.60.70.80.80.90.90.90 30.30.40.50.60.70.80.80.90.90.90 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 80.80.90.90.90 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.51.61.61.81.81.81.91.91.91.91.91 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 91.91.91.91.91 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 12.12.12.22.22.32.42.52.62.62.72.72.72.82 12.12.22.22.32.42.52.62.62.72.72.72.82 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 62.72.72.72.82 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.43.43.53.63.73.73.73.83.93.93.93 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 73.83.93.93.93 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.54.64.74.74.74.74.74.84.84.84.84.94 54.64.74.74.74.74.74.84.84.84.84.94 64.74.74.74.74.74.84.84.84.84.94 74.74.74.74.74.84.84.84.84.94 74.74.74.74.84.84.84.84.94 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 84.84.84.84.94 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.65.65.65.75.75.75.85.85.85.95.95.95 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 85.85.95.95.95 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.46.46.56.56.56.66.76.86.96.96.96 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 76.86.96.96.96 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 77.87.87.97.97 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.28.38.38.58.58.58.58.68.78.78.88.98.98 28.38.38.58.58.58.58.68.78.78.88.98.98 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 78.78.88.98.98 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.49.59.59.59.59.69.79.89.89.89.99.99.99 49.59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.69.79.89.89.89.99.99.99 59.59.69.79.89.89.89.99.99.99 59.69.79.89.89.89.99.99.99 69.79.89.89.89.99.99.99 79.89.89.89.99.99.99 89.89.89.99.99.99 89.89.99.99.99} +} {10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 20.30.30.30.40.50.60.70.80.80.90.90.90 + 30.30.30.40.50.60.70.80.80.90.90.90 30.30.40.50.60.70.80.80.90.90.90 + 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 + 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 + 80.80.90.90.90 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 + 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 + 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 + 91.91.91.91.91 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 + 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 + 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 + 62.72.72.72.82 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 + 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 + 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 + 73.83.93.93.93 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.44.44.54.64.74.74.74.84.84.84.84.94 + 44.44.54.64.74.74.74.84.84.84.84.94 44.54.64.74.74.74.84.84.84.84.94 + 54.64.74.74.74.84.84.84.84.94 64.74.74.74.84.84.84.84.94 + 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 + 84.84.84.84.94 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.65.65.65.75.75.75.85.85.85.95.95.95 + 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 + 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 + 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 + 85.85.95.95.95 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 + 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 + 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 + 76.86.96.96.96 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.47.47.47.47.57.67.77.77.87.87.97.97 + 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 + 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 + 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 + 77.87.87.97.97 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 28.38.38.58.58.58.58.68.78.78.88.98.98 + 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 + 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 + 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 + 78.78.88.98.98 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.49.59.59.59.59.69.79.89.89.89.99.99 + 49.59.59.59.59.69.79.89.89.89.99.99 59.59.59.59.69.79.89.89.89.99.99 + 59.59.59.69.79.89.89.89.99.99 59.59.69.79.89.89.89.99.99 + 59.69.79.89.89.89.99.99 69.79.89.89.89.99.99 79.89.89.89.99.99 + 89.89.89.99.99} do_execsql_test 1.15.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39} do_execsql_test 1.15.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.15.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.15.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.15.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.15.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) -} {201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 200 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 199 74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 198 74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 197 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 196 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 195 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 194 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 193 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 192 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 191 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 189 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 187 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 185 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 183 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 181 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 179 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 177 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 175 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 173 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 171 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 169 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 167 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 165 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 163 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 161 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 159 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 157 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 155 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 153 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 151 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 149 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 147 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 145 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 143 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 141 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 139 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 137 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 135 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 133 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 131 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 129 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 127 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 125 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 123 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 121 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 119 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 117 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 115 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 113 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 111 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 109 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 107 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 105 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 103 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 101 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 99 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 97 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 95 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 93 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 91 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 89 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 87 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 85 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 83 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 81 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 79 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 77 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 75 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 73 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 71 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 69 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 67 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 65 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 63 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 61 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 59 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 57 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 55 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 53 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 51 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 49 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 47 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 45 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 43 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 41 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 39 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 37 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 35 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 33 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 31 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 29 15.36.3.69.52.50.10.33.39.58.38.83.82.7 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 27 36.3.69.52.50.10.33.39.58.38.83.82.7 26 36.3.69.52.50.10.33.39.58.38.83.82.7 25 3.69.52.50.10.33.39.58.38.83.82.7 24 3.69.52.50.10.33.39.58.38.83.82.7 23 69.52.50.10.33.39.58.38.83.82.7 22 69.52.50.10.33.39.58.38.83.82.7 21 52.50.10.33.39.58.38.83.82.7 20 52.50.10.33.39.58.38.83.82.7 19 50.10.33.39.58.38.83.82.7 18 50.10.33.39.58.38.83.82.7 17 10.33.39.58.38.83.82.7 16 10.33.39.58.38.83.82.7 15 33.39.58.38.83.82.7 14 33.39.58.38.83.82.7 13 39.58.38.83.82.7 12 39.58.38.83.82.7 11 58.38.83.82.7 10 58.38.83.82.7 9 38.83.82.7 8 38.83.82.7 7 83.82.7 6 83.82.7 5 82.7} +} {191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 189 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 187 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 185 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 183 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 181 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 179 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 177 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 175 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 173 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 171 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 169 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 167 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 165 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 163 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 161 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 159 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 157 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 155 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 153 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 151 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 149 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 147 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 145 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 143 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 141 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 139 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 137 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 135 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 133 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 131 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 129 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 127 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 125 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 123 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 121 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 119 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 117 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 115 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 113 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 111 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 109 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 107 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 105 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 103 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 101 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 99 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 97 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 95 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 93 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 91 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 89 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 87 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 85 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 83 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 81 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 79 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 77 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 75 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 73 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 71 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 69 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 67 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 65 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 63 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 61 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 59 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 57 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 55 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 53 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 51 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 49 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 47 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 45 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 43 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 41 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 39 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 37 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 35 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 33 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 31 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 29 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 27 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 26 36.3.69.52.50.10.33.39.58.38.83.82.7 + 25 36.3.69.52.50.10.33.39.58.38.83.82.7 + 24 3.69.52.50.10.33.39.58.38.83.82.7 23 3.69.52.50.10.33.39.58.38.83.82.7 + 22 69.52.50.10.33.39.58.38.83.82.7 21 69.52.50.10.33.39.58.38.83.82.7 + 20 52.50.10.33.39.58.38.83.82.7 19 52.50.10.33.39.58.38.83.82.7 + 18 50.10.33.39.58.38.83.82.7 17 50.10.33.39.58.38.83.82.7 + 16 10.33.39.58.38.83.82.7 15 10.33.39.58.38.83.82.7 + 14 33.39.58.38.83.82.7 13 33.39.58.38.83.82.7 12 39.58.38.83.82.7 + 11 39.58.38.83.82.7 10 58.38.83.82.7 9 58.38.83.82.7 8 38.83.82.7 + 7 38.83.82.7 6 83.82.7 5 83.82.7} do_execsql_test 1.15.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) -} {201 {} 201 {} 201 {} 201 {} 201 {} 200 {} 199 {} 198 {} 197 {} 196 {} 195 {} 194 {} 193 {} 192 {} 191 {} 190 {} 189 {} 188 {} 187 {} 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} 179 {} 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} 171 {} 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} 163 {} 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} 155 {} 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} 147 {} 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} 139 {} 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} 131 {} 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} 123 {} 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} 115 {} 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} 107 {} 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} 99 {} 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} 90 {} 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} 81 {} 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} 72 {} 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} 63 {} 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} 54 {} 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} 45 {} 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} 36 {} 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} 27 {} 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {}} +} {191 {} 191 {} 191 {} 191 {} 191 {} 190 {} 189 {} 188 {} + 187 {} 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} + 179 {} 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} + 171 {} 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} + 163 {} 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} + 155 {} 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} + 147 {} 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} + 139 {} 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} + 131 {} 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} + 123 {} 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} + 115 {} 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} + 107 {} 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} + 99 {} 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} + 90 {} 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} + 81 {} 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} + 72 {} 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} + 63 {} 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} + 54 {} 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} + 45 {} 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} + 36 {} 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} + 27 {} 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {}} do_execsql_test 1.15.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) -} {20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 21 {} 21 {} 21 {} 21 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {}} +} {20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {}} do_execsql_test 1.15.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) -} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 18 29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 17 47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 13 78.72.98.87.73.96.74.90.75.91.69.39.7 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 5 75.91.69.39.7 21 {} 21 {} 21 {} 21 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 17 84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 13 89.29.9.21.12.88.55.70.58.81.91.52.58 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 5 58.81.91.52.58 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 17 23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 13 76.63.73.65.20.8.77.19.9.23.15.50.38 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 5 9.23.15.50.38 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 17 16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 13 4.87.65.5.31.49.2.26.72.13.36.10.83 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 5 72.13.36.10.83 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 17 65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 13 42.80.58.11.95.90.85.47.33.14.3.33.82 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 5 33.14.3.33.82 20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {}} +} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 18 29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 17 47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 13 78.72.98.87.73.96.74.90.75.91.69.39.7 + 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 + 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 + 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 + 5 75.91.69.39.7 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 17 84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 13 89.29.9.21.12.88.55.70.58.81.91.52.58 + 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 + 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 + 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 + 5 58.81.91.52.58 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 17 23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 13 76.63.73.65.20.8.77.19.9.23.15.50.38 + 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 + 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 + 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 + 5 9.23.15.50.38 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 17 16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 13 4.87.65.5.31.49.2.26.72.13.36.10.83 + 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 + 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 + 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 + 5 72.13.36.10.83 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 17 65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 13 42.80.58.11.95.90.85.47.33.14.3.33.82 + 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 + 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 + 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 + 5 33.14.3.33.82 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {}} do_execsql_test 1.16.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82 82 17 7 5} +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 + 83 83 83 83 83 83 83 82 82 17 7} do_execsql_test 1.16.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7} do_execsql_test 1.16.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.16.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.16.3.3 { SELECT row_number() OVER ( ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.16.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.16.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.16.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.16.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.16.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.16.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.16.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.16.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.16.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.16.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.16.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.16.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.16.6.1 { SELECT @@ -8067,7 +29371,33 @@ do_execsql_test 1.16.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.16.7.1 { @@ -8075,11 +29405,13 @@ do_test 1.16.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8090,11 +29422,13 @@ do_test 1.16.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8105,11 +29439,13 @@ do_test 1.16.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8120,11 +29456,13 @@ do_test 1.16.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8135,11 +29473,13 @@ do_test 1.16.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8150,11 +29490,13 @@ do_test 1.16.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8165,11 +29507,13 @@ do_test 1.16.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8180,11 +29524,13 @@ do_test 1.16.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8195,11 +29541,13 @@ do_test 1.16.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8210,11 +29558,13 @@ do_test 1.16.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8225,11 +29575,13 @@ do_test 1.16.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8240,11 +29592,13 @@ do_test 1.16.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8255,11 +29609,13 @@ do_test 1.16.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8270,11 +29626,13 @@ do_test 1.16.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8285,11 +29643,13 @@ do_test 1.16.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8300,11 +29660,13 @@ do_test 1.16.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8315,11 +29677,13 @@ do_test 1.16.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8330,11 +29694,13 @@ do_test 1.16.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8345,250 +29711,1930 @@ do_test 1.16.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.16.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206} +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207} do_execsql_test 1.16.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 232 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 223 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 210 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 279 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 212 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 232 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.16.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.16.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 280 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 198 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276} +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 240 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 252 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 171 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 226 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 124 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 198 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} do_execsql_test 1.16.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229} +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} do_execsql_test 1.16.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207 206} +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} do_execsql_test 1.16.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.16.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.16.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5} +} {89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 + 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 + 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 + 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 + 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 + 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 + 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 + 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 + 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 + 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 + 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 + 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 + 83 27 82 17 7} do_execsql_test 1.16.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.16.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 1 2 2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 19 20 21 21 22 22 23 23 24 25 26 26 27 27 28 + 29 29 29 30 30 30 31 31 32 33 33 33 33 34 34 + 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 + 40 41 41 42 43 43 44 44 46 46 47 47 47 47 49 + 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 + 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 + 67 68 69 70 72 72 72 73 73 73 74 74 74 75 75 + 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 + 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 + 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 + 96 97 97 98 98 99 99} do_execsql_test 1.16.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 11 11 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 2 2 2 12 12 12 22 22 32 42 52 62 62 72 72 72 82 3 3 13 13 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 5 5 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 6 16 16 16 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99} +} {10 20 30 30 30 40 50 60 70 80 80 90 90 90 1 1 + 11 11 21 21 31 31 41 41 51 61 61 81 81 81 91 + 91 91 91 91 2 2 12 12 12 22 22 32 42 52 62 62 + 72 72 72 82 3 3 13 13 23 23 33 33 33 33 43 43 + 53 63 73 73 73 83 93 93 93 4 14 24 34 34 34 + 34 44 44 54 64 74 74 74 84 84 84 84 94 5 15 + 15 15 25 35 35 55 55 65 65 65 75 75 75 85 85 + 85 95 95 95 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 86 96 96 96 7 7 7 17 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 8 8 + 8 28 38 38 58 58 58 58 68 78 78 88 98 98 9 9 + 9 19 29 29 29 39 39 39 49 59 59 59 59 69 79 + 89 89 89 99 99} do_execsql_test 1.16.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 90 40 30 80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39} +} {90 40 30 80 20 90 60 70 80 90 30 50 10 30 81 + 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 + 81 91 91 21 62 12 32 22 42 2 72 12 22 2 72 72 + 12 62 52 82 93 23 93 43 3 43 33 53 63 73 13 + 73 73 33 93 23 13 33 3 33 83 54 84 74 24 4 94 + 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 + 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 + 85 75 15 95 96 46 6 46 16 16 86 56 56 56 16 + 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 + 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 + 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 89 + 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 + 39 9 9 99 69 39} do_execsql_test 1.16.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} do_execsql_test 1.16.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.16.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.16.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.16.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.16.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.16.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.16.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.16.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0.74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.39.44.58.30.38.34.83.27.82.17.7.5 39.44.58.30.38.34.83.27.82.17.7.5 44.58.30.38.34.83.27.82.17.7.5 58.30.38.34.83.27.82.17.7.5 30.38.34.83.27.82.17.7.5 38.34.83.27.82.17.7.5 34.83.27.82.17.7.5 83.27.82.17.7.5 27.82.17.7.5 82.17.7.5 17.7.5 7.5 5} +} {89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.21.39.44.58.30.38.34.83.27.82.17.7 21.39.44.58.30.38.34.83.27.82.17.7 + 39.44.58.30.38.34.83.27.82.17.7 44.58.30.38.34.83.27.82.17.7 + 58.30.38.34.83.27.82.17.7 30.38.34.83.27.82.17.7 38.34.83.27.82.17.7 + 34.83.27.82.17.7 83.27.82.17.7 27.82.17.7 82.17.7 17.7 7} do_execsql_test 1.16.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30 90.40.30.80.20.90.60.70.80.90.30.50.10.30 40.30.80.20.90.60.70.80.90.30.50.10.30 30.80.20.90.60.70.80.90.30.50.10.30 80.20.90.60.70.80.90.30.50.10.30 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.61.1.21.11.51.41.31.31.11.81.91.91.21 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 31.11.81.91.91.21 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 32.22.42.2.72.12.22.2.72.72.12.62.52.82 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 72.72.12.62.52.82 72.12.62.52.82 12.62.52.82 62.52.82 52.82 82 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 53.63.73.13.73.73.33.93.23.13.33.3.33.83 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 23.13.33.3.33.83 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 94.84.74.34.34.44.74.64.14.34.84.84.44.34 84.74.34.34.44.74.64.14.34.84.84.44.34 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.5.15.95.55.75.85.75.15.95.5 35.5.15.95.55.75.85.75.15.95.5 5.15.95.55.75.85.75.15.95.5 15.95.55.75.85.75.15.95.5 95.55.75.85.75.15.95.5 55.75.85.75.15.95.5 75.85.75.15.95.5 85.75.15.95.5 75.15.95.5 15.95.5 95.5 5 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.16.36.76.96.96.26.26.36.66.36.36 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 26.36.66.36.36 36.66.36.36 66.36.36 36.36 36 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 47.47.37.27.17.7 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 78.8.28.98.78.58.98.8.88.8.58.58.58.38 8.28.98.78.58.98.8.88.8.58.58.58.38 28.98.78.58.98.8.88.8.58.58.58.38 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 88.8.58.58.58.38 8.58.58.58.38 58.58.58.38 58.58.38 58.38 38 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 40.30.80.20.90.60.70.80.90.30.50.10.30 + 30.80.20.90.60.70.80.90.30.50.10.30 80.20.90.60.70.80.90.30.50.10.30 + 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 + 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 + 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 + 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 + 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 + 31.11.81.91.91.21 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 + 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 + 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 + 72.72.12.62.52.82 72.12.62.52.82 12.62.52.82 62.52.82 52.82 82 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 + 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 + 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 + 23.13.33.3.33.83 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 + 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 + 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 + 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 95.65.65.35.5.15.95.55.75.85.75.15.95 65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.5.15.95.55.75.85.75.15.95 35.5.15.95.55.75.85.75.15.95 + 5.15.95.55.75.85.75.15.95 15.95.55.75.85.75.15.95 95.55.75.85.75.15.95 + 55.75.85.75.15.95 75.85.75.15.95 85.75.15.95 75.15.95 15.95 95 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 + 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 + 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 + 26.36.66.36.36 36.66.36.36 66.36.36 36.36 36 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 + 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 + 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 + 47.47.37.27.17.7 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 8.28.98.78.58.98.8.88.8.58.58.58.38 28.98.78.58.98.8.88.8.58.58.58.38 + 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 + 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 + 88.8.58.58.58.38 8.58.58.58.38 58.58.58.38 58.58.38 58.38 38 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} do_execsql_test 1.16.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 1.1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 1.2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 94.95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.96.96.96.97.97.98.98.99.99.99 95.96.96.96.97.97.98.98.99.99.99 96.96.96.97.97.98.98.99.99.99 96.96.97.97.98.98.99.99.99 96.97.97.98.98.99.99.99 97.97.98.98.99.99.99 97.98.98.99.99.99 98.98.99.99.99 98.99.99.99 99.99.99 99.99 99} +} {1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 94.95.95.95.96.96.96.97.97.98.98.99.99 + 95.95.95.96.96.96.97.97.98.98.99.99 95.95.96.96.96.97.97.98.98.99.99 + 95.96.96.96.97.97.98.98.99.99 96.96.96.97.97.98.98.99.99 + 96.96.97.97.98.98.99.99 96.97.97.98.98.99.99 97.97.98.98.99.99 + 97.98.98.99.99 98.98.99.99 98.99.99 99.99 99} do_execsql_test 1.16.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.10.20.30.30.30.40.50.60.70.80.80.90.90.90 10.20.30.30.30.40.50.60.70.80.80.90.90.90 20.30.30.30.40.50.60.70.80.80.90.90.90 30.30.30.40.50.60.70.80.80.90.90.90 30.30.40.50.60.70.80.80.90.90.90 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 1.1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 1.11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 11.11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 11.21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.51.61.61.81.81.81.91.91.91.91.91 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 2.2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 12.12.12.22.22.32.42.52.62.62.72.72.72.82 12.12.22.22.32.42.52.62.62.72.72.72.82 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 62.72.72.72.82 72.72.72.82 72.72.82 72.82 82 3.3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 3.13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 13.13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 13.23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.43.43.53.63.73.73.73.83.93.93.93 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 4.14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 14.24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 24.34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.54.64.74.74.74.74.74.84.84.84.84.94 54.64.74.74.74.74.74.84.84.84.84.94 64.74.74.74.74.74.84.84.84.84.94 74.74.74.74.74.84.84.84.84.94 74.74.74.74.84.84.84.84.94 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 5.5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.65.65.65.75.75.75.85.85.85.95.95.95 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 6.16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 16.26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.46.46.56.56.56.66.76.86.96.96.96 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 76.86.96.96.96 86.96.96.96 96.96.96 96.96 96 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 8.28.38.38.58.58.58.58.68.78.78.88.98.98 28.38.38.58.58.58.58.68.78.78.88.98.98 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 78.78.88.98.98 78.88.98.98 88.98.98 98.98 98 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.49.59.59.59.59.69.79.89.89.89.99.99.99 49.59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.69.79.89.89.89.99.99.99 59.59.69.79.89.89.89.99.99.99 59.69.79.89.89.89.99.99.99 69.79.89.89.89.99.99.99 79.89.89.89.99.99.99 89.89.89.99.99.99 89.89.99.99.99 89.99.99.99 99.99.99 99.99 99} +} {10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 20.30.30.30.40.50.60.70.80.80.90.90.90 + 30.30.30.40.50.60.70.80.80.90.90.90 30.30.40.50.60.70.80.80.90.90.90 + 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 + 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 + 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 + 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 + 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 + 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 + 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 + 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 + 62.72.72.72.82 72.72.72.82 72.72.82 72.82 82 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 + 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 + 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 + 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.44.44.54.64.74.74.74.84.84.84.84.94 + 44.44.54.64.74.74.74.84.84.84.84.94 44.54.64.74.74.74.84.84.84.84.94 + 54.64.74.74.74.84.84.84.84.94 64.74.74.74.84.84.84.84.94 + 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 + 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.65.65.65.75.75.75.85.85.85.95.95.95 + 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 + 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 + 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 + 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 + 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 + 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 + 76.86.96.96.96 86.96.96.96 96.96.96 96.96 96 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.47.47.47.47.57.67.77.77.87.87.97.97 + 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 + 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 + 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 + 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 28.38.38.58.58.58.58.68.78.78.88.98.98 + 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 + 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 + 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 + 78.78.88.98.98 78.88.98.98 88.98.98 98.98 98 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.49.59.59.59.59.69.79.89.89.89.99.99 + 49.59.59.59.59.69.79.89.89.89.99.99 59.59.59.59.69.79.89.89.89.99.99 + 59.59.59.69.79.89.89.89.99.99 59.59.69.79.89.89.89.99.99 + 59.69.79.89.89.89.99.99 69.79.89.89.89.99.99 79.89.89.89.99.99 + 89.89.89.99.99 89.89.99.99 89.99.99 99.99 99} do_execsql_test 1.16.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2 -} {0.90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 40.30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39} do_execsql_test 1.16.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2 -} {0 74 74 26 2 96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 10 84 44 58 30 38 34 82 41 23 99 33 89 81 59 39 91 99 97 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 83 27 17 7 5} +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.16.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.16.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.16.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} do_execsql_test 1.16.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {201 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 200 74.74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 199 74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 198 74.99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 197 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 196 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 195 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 194 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 193 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 192 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 191 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 189 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 187 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 185 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 183 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 181 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 179 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 177 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 175 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 173 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 171 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 169 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 167 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 165 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 163 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 161 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 159 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 157 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 155 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 153 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 151 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 149 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 147 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 145 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 143 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 141 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 139 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 137 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 135 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 133 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 131 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 129 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 127 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 125 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 123 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 121 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 119 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 117 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 115 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 113 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 111 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 109 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 107 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 105 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 103 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 101 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 99 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 97 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 95 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 93 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 91 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 89 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 87 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 85 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 83 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 81 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 79 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 77 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 75 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 73 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 71 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 69 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 67 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 65 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 63 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 61 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 59 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 57 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 55 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 53 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 51 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 49 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 47 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 45 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 43 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 41 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 39 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 37 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 35 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 33 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 31 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 29 15.36.3.69.52.50.10.33.39.58.38.83.82.7 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 27 36.3.69.52.50.10.33.39.58.38.83.82.7 26 36.3.69.52.50.10.33.39.58.38.83.82.7 25 3.69.52.50.10.33.39.58.38.83.82.7 24 3.69.52.50.10.33.39.58.38.83.82.7 23 69.52.50.10.33.39.58.38.83.82.7 22 69.52.50.10.33.39.58.38.83.82.7 21 52.50.10.33.39.58.38.83.82.7 20 52.50.10.33.39.58.38.83.82.7 19 50.10.33.39.58.38.83.82.7 18 50.10.33.39.58.38.83.82.7 17 10.33.39.58.38.83.82.7 16 10.33.39.58.38.83.82.7 15 33.39.58.38.83.82.7 14 33.39.58.38.83.82.7 13 39.58.38.83.82.7 12 39.58.38.83.82.7 11 58.38.83.82.7 10 58.38.83.82.7 9 38.83.82.7 8 38.83.82.7 7 83.82.7 6 83.82.7 5 82.7 4 82.7 3 7 2 7 1 {}} +} {191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 189 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 187 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 185 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 183 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 181 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 179 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 177 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 175 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 173 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 171 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 169 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 167 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 165 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 163 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 161 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 159 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 157 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 155 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 153 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 151 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 149 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 147 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 145 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 143 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 141 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 139 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 137 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 135 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 133 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 131 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 129 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 127 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 125 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 123 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 121 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 119 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 117 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 115 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 113 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 111 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 109 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 107 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 105 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 103 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 101 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 99 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 97 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 95 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 93 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 91 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 89 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 87 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 85 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 83 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 81 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 79 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 77 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 75 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 73 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 71 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 69 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 67 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 65 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 63 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 61 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 59 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 57 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 55 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 53 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 51 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 49 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 47 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 45 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 43 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 41 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 39 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 37 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 35 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 33 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 31 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 29 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 27 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 26 36.3.69.52.50.10.33.39.58.38.83.82.7 + 25 36.3.69.52.50.10.33.39.58.38.83.82.7 + 24 3.69.52.50.10.33.39.58.38.83.82.7 23 3.69.52.50.10.33.39.58.38.83.82.7 + 22 69.52.50.10.33.39.58.38.83.82.7 21 69.52.50.10.33.39.58.38.83.82.7 + 20 52.50.10.33.39.58.38.83.82.7 19 52.50.10.33.39.58.38.83.82.7 + 18 50.10.33.39.58.38.83.82.7 17 50.10.33.39.58.38.83.82.7 + 16 10.33.39.58.38.83.82.7 15 10.33.39.58.38.83.82.7 + 14 33.39.58.38.83.82.7 13 33.39.58.38.83.82.7 12 39.58.38.83.82.7 + 11 39.58.38.83.82.7 10 58.38.83.82.7 9 58.38.83.82.7 8 38.83.82.7 + 7 38.83.82.7 6 83.82.7 5 83.82.7 4 82.7 3 82.7 2 7 1 7} do_execsql_test 1.16.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {201 {} 200 {} 199 {} 198 {} 197 {} 196 {} 195 {} 194 {} 193 {} 192 {} 191 {} 190 {} 189 {} 188 {} 187 {} 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} 179 {} 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} 171 {} 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} 163 {} 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} 155 {} 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} 147 {} 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} 139 {} 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} 131 {} 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} 123 {} 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} 115 {} 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} 107 {} 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} 99 {} 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} 90 {} 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} 81 {} 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} 72 {} 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} 63 {} 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} 54 {} 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} 45 {} 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} 36 {} 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} 27 {} 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {191 {} 190 {} 189 {} 188 {} 187 {} 186 {} 185 {} 184 {} + 183 {} 182 {} 181 {} 180 {} 179 {} 178 {} 177 {} 176 {} + 175 {} 174 {} 173 {} 172 {} 171 {} 170 {} 169 {} 168 {} + 167 {} 166 {} 165 {} 164 {} 163 {} 162 {} 161 {} 160 {} + 159 {} 158 {} 157 {} 156 {} 155 {} 154 {} 153 {} 152 {} + 151 {} 150 {} 149 {} 148 {} 147 {} 146 {} 145 {} 144 {} + 143 {} 142 {} 141 {} 140 {} 139 {} 138 {} 137 {} 136 {} + 135 {} 134 {} 133 {} 132 {} 131 {} 130 {} 129 {} 128 {} + 127 {} 126 {} 125 {} 124 {} 123 {} 122 {} 121 {} 120 {} + 119 {} 118 {} 117 {} 116 {} 115 {} 114 {} 113 {} 112 {} + 111 {} 110 {} 109 {} 108 {} 107 {} 106 {} 105 {} 104 {} + 103 {} 102 {} 101 {} 100 {} 99 {} 98 {} 97 {} 96 {} 95 {} + 94 {} 93 {} 92 {} 91 {} 90 {} 89 {} 88 {} 87 {} 86 {} + 85 {} 84 {} 83 {} 82 {} 81 {} 80 {} 79 {} 78 {} 77 {} + 76 {} 75 {} 74 {} 73 {} 72 {} 71 {} 70 {} 69 {} 68 {} + 67 {} 66 {} 65 {} 64 {} 63 {} 62 {} 61 {} 60 {} 59 {} + 58 {} 57 {} 56 {} 55 {} 54 {} 53 {} 52 {} 51 {} 50 {} + 49 {} 48 {} 47 {} 46 {} 45 {} 44 {} 43 {} 42 {} 41 {} + 40 {} 39 {} 38 {} 37 {} 36 {} 35 {} 34 {} 33 {} 32 {} + 31 {} 30 {} 29 {} 28 {} 27 {} 26 {} 25 {} 24 {} 23 {} + 22 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} + 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} + 3 {} 2 {} 1 {}} do_execsql_test 1.16.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {}} do_execsql_test 1.16.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) -} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 18 29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 17 47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 13 78.72.98.87.73.96.74.90.75.91.69.39.7 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 5 75.91.69.39.7 4 91.69.39.7 3 69.39.7 2 39.7 1 7 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 74.96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 17 84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 13 89.29.9.21.12.88.55.70.58.81.91.52.58 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 5 58.81.91.52.58 4 81.91.52.58 3 91.52.58 2 52.58 1 58 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 74.38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 17 23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 13 76.63.73.65.20.8.77.19.9.23.15.50.38 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 99.39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 17 16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 13 4.87.65.5.31.49.2.26.72.13.36.10.83 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 1 83 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 20 33.91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 17 65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 13 42.80.58.11.95.90.85.47.33.14.3.33.82 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 5 33.14.3.33.82 4 14.3.33.82 3 3.33.82 2 33.82 1 82 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} +} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 18 29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 17 47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 13 78.72.98.87.73.96.74.90.75.91.69.39.7 + 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 + 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 + 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 + 5 75.91.69.39.7 4 91.69.39.7 3 69.39.7 2 39.7 1 7 19 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 17 84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 13 89.29.9.21.12.88.55.70.58.81.91.52.58 + 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 + 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 + 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 + 5 58.81.91.52.58 4 81.91.52.58 3 91.52.58 2 52.58 1 58 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 17 23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 13 76.63.73.65.20.8.77.19.9.23.15.50.38 + 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 + 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 + 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 + 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 17 16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 13 4.87.65.5.31.49.2.26.72.13.36.10.83 + 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 + 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 + 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 + 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 1 83 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 17 65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 13 42.80.58.11.95.90.85.47.33.14.3.33.82 + 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 + 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 + 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 + 5 33.14.3.33.82 4 14.3.33.82 3 3.33.82 2 33.82 1 82 19 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {}} do_execsql_test 1.17.2.1 { SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82 82 17 7 5 {} {} {} {}} +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 + 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 + 83 83 83 82 82 17 7 {} {} {} {}} do_execsql_test 1.17.2.2 { SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 {} {} {} {}} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 7 7 7 7 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 {} {} + {} {}} do_execsql_test 1.17.3.1 { SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.17.3.2 { SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.17.3.3 { SELECT row_number() OVER ( ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.17.4.1 { SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.17.4.2 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.17.4.3 { SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 3 3 3 4 4 5 6 6 7 8 8 8 9 9 9 10 10 10 11 12 12 13 13 13 14 14 15 16 16 16 17 17 17 18 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 45 45 46 46 46 46 47 48 49 50 51 52 53 53 54 54 54 55 56 56 56 56 57 57 57 57 58 59 59 60 60 61 62 63 63 63 64 65 66 67 68 69 69 69 70 70 70 71 71 71 71 71 72 72 72 73 74 74 75 75 76 77 77 78 78 78 79 80 81 81 81 81 82 82 82 83 84 84 85 86 86 86 87 87 87 88 88 88 88 88 89 89 89 90 91 91 91 92 92 92 93 93 94 94 95 95 95} +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} do_execsql_test 1.17.4.4 { SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 5 6 7 8 9 9 10 10 10 1 1 2 2 3 3 4 4 5 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 1 2 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 3 4 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 4 4 4 4 5 5 6 7 8 8 8 8 8 9 9 9 9 10 1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 2 2 2 3 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 10 10 10} +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} do_execsql_test 1.17.4.5 { SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} do_execsql_test 1.17.4.6 { SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} do_execsql_test 1.17.5.1 { SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} do_execsql_test 1.17.5.2 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23} +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} do_execsql_test 1.17.5.3 { SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 2 4 4 4 7 7 9 10 10 12 13 13 13 16 16 16 19 19 19 22 23 23 25 25 25 28 28 30 31 31 31 34 34 34 37 38 39 40 40 42 42 44 44 44 47 48 49 49 49 52 52 54 55 55 55 58 58 58 61 61 63 64 64 64 64 64 69 69 69 69 73 73 75 75 75 75 79 79 81 81 83 83 83 86 87 87 87 90 91 91 93 93 95 95 97 97 97 97 101 102 103 104 105 106 107 107 109 109 109 112 113 113 113 113 117 117 117 117 121 122 122 124 124 126 127 128 128 128 131 132 133 134 135 136 136 136 139 139 139 142 142 142 142 142 147 147 147 150 151 151 153 153 155 156 156 158 158 158 161 162 163 163 163 163 167 167 167 170 171 171 173 174 174 174 177 177 177 180 180 180 180 180 185 185 185 188 189 189 189 192 192 192 195 195 197 197 199 199 199} +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} do_execsql_test 1.17.5.4 { SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 2 3 4 4 4 7 8 9 10 11 11 13 13 13 1 1 3 3 5 5 7 7 9 9 9 12 13 13 15 15 15 18 18 18 18 18 1 1 1 4 4 4 7 7 9 10 11 12 12 14 14 14 17 1 1 3 3 5 5 5 8 8 8 8 8 13 13 15 16 17 17 17 20 21 21 21 1 2 3 4 4 4 4 8 8 10 11 12 12 12 12 12 17 17 17 17 21 1 1 3 3 3 6 7 7 9 9 11 11 11 14 14 14 17 17 17 20 20 20 1 2 2 2 5 5 5 8 8 8 8 12 12 14 14 14 17 18 19 20 20 20 1 1 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 18 18 18 21 21 21} +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} do_execsql_test 1.17.5.5 { SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 121 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 143 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 163 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179 179} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} do_execsql_test 1.17.5.6 { SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88} +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} do_execsql_test 1.17.6.1 { SELECT @@ -8596,7 +31642,33 @@ do_execsql_test 1.17.6.1 { rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ), dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 16 2 17 16 2 18 16 2 19 16 2 20 16 2 21 16 2 22 16 2 23 16 2 24 16 2 25 16 2 26 16 2 27 16 2 28 16 2 29 16 2 30 16 2 31 16 2 32 16 2 33 33 3 34 33 3 35 33 3 36 33 3 37 33 3 38 33 3 39 33 3 40 33 3 41 33 3 42 33 3 43 33 3 44 33 3 45 33 3 46 33 3 47 33 3 48 33 3 49 33 3 50 33 3 51 33 3 52 33 3 53 33 3 54 54 4 55 54 4 56 54 4 57 54 4 58 54 4 59 54 4 60 54 4 61 54 4 62 54 4 63 54 4 64 54 4 65 54 4 66 54 4 67 54 4 68 54 4 69 54 4 70 54 4 71 54 4 72 54 4 73 54 4 74 54 4 75 54 4 76 76 5 77 76 5 78 76 5 79 76 5 80 76 5 81 76 5 82 76 5 83 76 5 84 76 5 85 76 5 86 76 5 87 76 5 88 76 5 89 76 5 90 76 5 91 76 5 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 23 2 24 23 2 25 23 2 26 23 2 27 23 2 28 23 2 29 23 2 30 23 2 31 23 2 32 23 2 33 23 2 34 23 2 35 23 2 36 23 2 37 23 2 38 23 2 39 23 2 40 23 2 41 23 2 42 23 2 43 23 2 44 23 2 45 23 2 46 46 3 47 46 3 48 46 3 49 46 3 50 46 3 51 46 3 52 46 3 53 46 3 54 46 3 55 46 3 56 46 3 57 46 3 58 46 3 59 46 3 60 46 3 61 46 3 62 46 3 63 46 3 64 46 3 65 46 3 66 46 3 67 46 3 68 68 4 69 68 4 70 68 4 71 68 4 72 68 4 73 68 4 74 68 4 75 68 4 76 68 4 77 68 4 78 68 4 79 68 4 80 68 4 81 68 4 82 68 4 83 68 4 84 68 4 85 68 4 86 68 4 87 68 4 88 88 5 89 88 5 90 88 5 91 88 5 92 88 5 93 88 5 94 88 5 95 88 5 96 88 5 97 88 5 98 88 5 99 88 5 100 88 5 101 88 5 102 88 5 103 88 5 104 88 5 105 88 5 106 88 5 107 88 5 108 88 5 109 88 5 110 88 5} +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} do_test 1.17.7.1 { @@ -8604,11 +31676,13 @@ do_test 1.17.7.1 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0100 0.0150 0.0200 0.0250 0.0300 0.0350 0.0400 0.0450 0.0500 0.0550 0.0600 0.0650 0.0700 0.0750 0.0800 0.0850 0.0900 0.0950 0.1000 0.1050 0.1100 0.1150 0.1200 0.1250 0.1300 0.1350 0.1400 0.1450 0.1500 0.1550 0.1600 0.1650 0.1700 0.1750 0.1800 0.1850 0.1900 0.1950 0.2000 0.2050 0.2100 0.2150 0.2200 0.2250 0.2300 0.2350 0.2400 0.2450 0.2500 0.2550 0.2600 0.2650 0.2700 0.2750 0.2800 0.2850 0.2900 0.2950 0.3000 0.3050 0.3100 0.3150 0.3200 0.3250 0.3300 0.3350 0.3400 0.3450 0.3500 0.3550 0.3600 0.3650 0.3700 0.3750 0.3800 0.3850 0.3900 0.3950 0.4000 0.4050 0.4100 0.4150 0.4200 0.4250 0.4300 0.4350 0.4400 0.4450 0.4500 0.4550 0.4600 0.4650 0.4700 0.4750 0.4800 0.4850 0.4900 0.4950 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5350 0.5400 0.5450 0.5500 0.5550 0.5600 0.5650 0.5700 0.5750 0.5800 0.5850 0.5900 0.5950 0.6000 0.6050 0.6100 0.6150 0.6200 0.6250 0.6300 0.6350 0.6400 0.6450 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6800 0.6850 0.6900 0.6950 0.7000 0.7050 0.7100 0.7150 0.7200 0.7250 0.7300 0.7350 0.7400 0.7450 0.7500 0.7550 0.7600 0.7650 0.7700 0.7750 0.7800 0.7850 0.7900 0.7950 0.8000 0.8050 0.8100 0.8150 0.8200 0.8250 0.8300 0.8350 0.8400 0.8450 0.8500 0.8550 0.8600 0.8650 0.8700 0.8750 0.8800 0.8850 0.8900 0.8950 0.9000 0.9050 0.9100 0.9150 0.9200 0.9250 0.9300 0.9350 0.9400 0.9450 0.9500 0.9550 0.9600 0.9650 0.9700 0.9750 0.9800 0.9850 0.9900 0.9950 1.0000} + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8619,11 +31693,13 @@ do_test 1.17.7.2 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8634,11 +31710,13 @@ do_test 1.17.7.3 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0050 0.0050 0.0150 0.0150 0.0150 0.0300 0.0300 0.0400 0.0450 0.0450 0.0550 0.0600 0.0600 0.0600 0.0750 0.0750 0.0750 0.0900 0.0900 0.0900 0.1050 0.1100 0.1100 0.1200 0.1200 0.1200 0.1350 0.1350 0.1450 0.1500 0.1500 0.1500 0.1650 0.1650 0.1650 0.1800 0.1850 0.1900 0.1950 0.1950 0.2050 0.2050 0.2150 0.2150 0.2150 0.2300 0.2350 0.2400 0.2400 0.2400 0.2550 0.2550 0.2650 0.2700 0.2700 0.2700 0.2850 0.2850 0.2850 0.3000 0.3000 0.3100 0.3150 0.3150 0.3150 0.3150 0.3150 0.3400 0.3400 0.3400 0.3400 0.3600 0.3600 0.3700 0.3700 0.3700 0.3700 0.3900 0.3900 0.4000 0.4000 0.4100 0.4100 0.4100 0.4250 0.4300 0.4300 0.4300 0.4450 0.4500 0.4500 0.4600 0.4600 0.4700 0.4700 0.4800 0.4800 0.4800 0.4800 0.5000 0.5050 0.5100 0.5150 0.5200 0.5250 0.5300 0.5300 0.5400 0.5400 0.5400 0.5550 0.5600 0.5600 0.5600 0.5600 0.5800 0.5800 0.5800 0.5800 0.6000 0.6050 0.6050 0.6150 0.6150 0.6250 0.6300 0.6350 0.6350 0.6350 0.6500 0.6550 0.6600 0.6650 0.6700 0.6750 0.6750 0.6750 0.6900 0.6900 0.6900 0.7050 0.7050 0.7050 0.7050 0.7050 0.7300 0.7300 0.7300 0.7450 0.7500 0.7500 0.7600 0.7600 0.7700 0.7750 0.7750 0.7850 0.7850 0.7850 0.8000 0.8050 0.8100 0.8100 0.8100 0.8100 0.8300 0.8300 0.8300 0.8450 0.8500 0.8500 0.8600 0.8650 0.8650 0.8650 0.8800 0.8800 0.8800 0.8950 0.8950 0.8950 0.8950 0.8950 0.9200 0.9200 0.9200 0.9350 0.9400 0.9400 0.9400 0.9550 0.9550 0.9550 0.9700 0.9700 0.9800 0.9800 0.9900 0.9900 0.9900} + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8649,11 +31727,13 @@ do_test 1.17.7.4 { foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0714 0.1429 0.2143 0.2143 0.2143 0.4286 0.5000 0.5714 0.6429 0.7143 0.7143 0.8571 0.8571 0.8571 0.0000 0.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.3810 0.5238 0.5714 0.5714 0.6667 0.6667 0.6667 0.8095 0.8095 0.8095 0.8095 0.8095 0.0000 0.0000 0.0000 0.1875 0.1875 0.1875 0.3750 0.3750 0.5000 0.5625 0.6250 0.6875 0.6875 0.8125 0.8125 0.8125 1.0000 0.0000 0.0000 0.0909 0.0909 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.3182 0.3182 0.5455 0.5455 0.6364 0.6818 0.7273 0.7273 0.7273 0.8636 0.9091 0.9091 0.9091 0.0000 0.0500 0.1000 0.1500 0.1500 0.1500 0.1500 0.3500 0.3500 0.4500 0.5000 0.5500 0.5500 0.5500 0.5500 0.5500 0.8000 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.0952 0.0952 0.0952 0.2381 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.4762 0.6190 0.6190 0.6190 0.7619 0.7619 0.7619 0.9048 0.9048 0.9048 0.0000 0.0476 0.0476 0.0476 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.3333 0.5238 0.5238 0.6190 0.6190 0.6190 0.7619 0.8095 0.8571 0.9048 0.9048 0.9048 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1364 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.4545 0.5000 0.5000 0.5000 0.5000 0.6818 0.7273 0.7727 0.7727 0.7727 0.9091 0.9091 0.9091} + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8664,11 +31744,13 @@ do_test 1.17.7.5 { foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.0750 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.1850 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.2700 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.3850 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.4900 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.7100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8100 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900 0.8900} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8679,11 +31761,13 @@ do_test 1.17.7.6 { foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.3556 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.5889 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.8333 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.2018 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.4128 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.6147 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982 0.7982} + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8694,11 +31778,13 @@ do_test 1.17.8.1 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0100 0.0149 0.0199 0.0249 0.0299 0.0348 0.0398 0.0448 0.0498 0.0547 0.0597 0.0647 0.0697 0.0746 0.0796 0.0846 0.0896 0.0945 0.0995 0.1045 0.1095 0.1144 0.1194 0.1244 0.1294 0.1343 0.1393 0.1443 0.1493 0.1542 0.1592 0.1642 0.1692 0.1741 0.1791 0.1841 0.1891 0.1940 0.1990 0.2040 0.2090 0.2139 0.2189 0.2239 0.2289 0.2338 0.2388 0.2438 0.2488 0.2537 0.2587 0.2637 0.2687 0.2736 0.2786 0.2836 0.2886 0.2935 0.2985 0.3035 0.3085 0.3134 0.3184 0.3234 0.3284 0.3333 0.3383 0.3433 0.3483 0.3532 0.3582 0.3632 0.3682 0.3731 0.3781 0.3831 0.3881 0.3930 0.3980 0.4030 0.4080 0.4129 0.4179 0.4229 0.4279 0.4328 0.4378 0.4428 0.4478 0.4527 0.4577 0.4627 0.4677 0.4726 0.4776 0.4826 0.4876 0.4925 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5323 0.5373 0.5423 0.5473 0.5522 0.5572 0.5622 0.5672 0.5721 0.5771 0.5821 0.5871 0.5920 0.5970 0.6020 0.6070 0.6119 0.6169 0.6219 0.6269 0.6318 0.6368 0.6418 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6766 0.6816 0.6866 0.6915 0.6965 0.7015 0.7065 0.7114 0.7164 0.7214 0.7264 0.7313 0.7363 0.7413 0.7463 0.7512 0.7562 0.7612 0.7662 0.7711 0.7761 0.7811 0.7861 0.7910 0.7960 0.8010 0.8060 0.8109 0.8159 0.8209 0.8259 0.8308 0.8358 0.8408 0.8458 0.8507 0.8557 0.8607 0.8657 0.8706 0.8756 0.8806 0.8856 0.8905 0.8955 0.9005 0.9055 0.9104 0.9154 0.9204 0.9254 0.9303 0.9353 0.9403 0.9453 0.9502 0.9552 0.9602 0.9652 0.9701 0.9751 0.9801 0.9851 0.9900 0.9950 1.0000} + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8709,11 +31795,13 @@ do_test 1.17.8.2 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0588 0.1176 0.1765 0.2353 0.2941 0.3529 0.4118 0.4706 0.5294 0.5882 0.6471 0.7059 0.7647 0.8235 0.8824 0.9412 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0435 0.0870 0.1304 0.1739 0.2174 0.2609 0.3043 0.3478 0.3913 0.4348 0.4783 0.5217 0.5652 0.6087 0.6522 0.6957 0.7391 0.7826 0.8261 0.8696 0.9130 0.9565 1.0000} + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8724,11 +31812,13 @@ do_test 1.17.8.3 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0050 0.0149 0.0149 0.0299 0.0299 0.0299 0.0398 0.0398 0.0448 0.0547 0.0547 0.0597 0.0746 0.0746 0.0746 0.0896 0.0896 0.0896 0.1045 0.1045 0.1045 0.1095 0.1194 0.1194 0.1343 0.1343 0.1343 0.1443 0.1443 0.1493 0.1642 0.1642 0.1642 0.1791 0.1791 0.1791 0.1841 0.1891 0.1940 0.2040 0.2040 0.2139 0.2139 0.2289 0.2289 0.2289 0.2338 0.2388 0.2537 0.2537 0.2537 0.2637 0.2637 0.2687 0.2836 0.2836 0.2836 0.2985 0.2985 0.2985 0.3085 0.3085 0.3134 0.3383 0.3383 0.3383 0.3383 0.3383 0.3582 0.3582 0.3582 0.3582 0.3682 0.3682 0.3881 0.3881 0.3881 0.3881 0.3980 0.3980 0.4080 0.4080 0.4229 0.4229 0.4229 0.4279 0.4428 0.4428 0.4428 0.4478 0.4577 0.4577 0.4677 0.4677 0.4776 0.4776 0.4975 0.4975 0.4975 0.4975 0.5025 0.5075 0.5124 0.5174 0.5224 0.5274 0.5373 0.5373 0.5522 0.5522 0.5522 0.5572 0.5771 0.5771 0.5771 0.5771 0.5970 0.5970 0.5970 0.5970 0.6020 0.6119 0.6119 0.6219 0.6219 0.6269 0.6318 0.6468 0.6468 0.6468 0.6517 0.6567 0.6617 0.6667 0.6716 0.6866 0.6866 0.6866 0.7015 0.7015 0.7015 0.7264 0.7264 0.7264 0.7264 0.7264 0.7413 0.7413 0.7413 0.7463 0.7562 0.7562 0.7662 0.7662 0.7711 0.7811 0.7811 0.7960 0.7960 0.7960 0.8010 0.8060 0.8259 0.8259 0.8259 0.8259 0.8408 0.8408 0.8408 0.8458 0.8557 0.8557 0.8607 0.8756 0.8756 0.8756 0.8905 0.8905 0.8905 0.9154 0.9154 0.9154 0.9154 0.9154 0.9303 0.9303 0.9303 0.9353 0.9502 0.9502 0.9502 0.9652 0.9652 0.9652 0.9751 0.9751 0.9851 0.9851 1.0000 1.0000 1.0000} + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8739,11 +31829,13 @@ do_test 1.17.8.4 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0667 0.1333 0.2000 0.4000 0.4000 0.4000 0.4667 0.5333 0.6000 0.6667 0.8000 0.8000 1.0000 1.0000 1.0000 0.0909 0.0909 0.1818 0.1818 0.2727 0.2727 0.3636 0.3636 0.5000 0.5000 0.5000 0.5455 0.6364 0.6364 0.7727 0.7727 0.7727 1.0000 1.0000 1.0000 1.0000 1.0000 0.1765 0.1765 0.1765 0.3529 0.3529 0.3529 0.4706 0.4706 0.5294 0.5882 0.6471 0.7647 0.7647 0.9412 0.9412 0.9412 1.0000 0.0870 0.0870 0.1739 0.1739 0.3043 0.3043 0.3043 0.5217 0.5217 0.5217 0.5217 0.5217 0.6087 0.6087 0.6522 0.6957 0.8261 0.8261 0.8261 0.8696 1.0000 1.0000 1.0000 0.0476 0.0952 0.1429 0.3333 0.3333 0.3333 0.3333 0.4286 0.4286 0.4762 0.5238 0.7619 0.7619 0.7619 0.7619 0.7619 0.9524 0.9524 0.9524 0.9524 1.0000 0.0909 0.0909 0.2273 0.2273 0.2273 0.2727 0.3636 0.3636 0.4545 0.4545 0.5909 0.5909 0.5909 0.7273 0.7273 0.7273 0.8636 0.8636 0.8636 1.0000 1.0000 1.0000 0.0455 0.1818 0.1818 0.1818 0.3182 0.3182 0.3182 0.5000 0.5000 0.5000 0.5000 0.5909 0.5909 0.7273 0.7273 0.7273 0.7727 0.8182 0.8636 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1304 0.1304 0.1304 0.1739 0.3043 0.3043 0.3043 0.4348 0.4348 0.4348 0.4783 0.6522 0.6522 0.6522 0.6522 0.6957 0.7391 0.8696 0.8696 0.8696 1.0000 1.0000 1.0000} + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8754,11 +31846,13 @@ do_test 1.17.8.5 { foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.0746 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.1841 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.2687 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.3831 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.4876 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.5970 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.7065 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8060 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 0.8856 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8769,11 +31863,13 @@ do_test 1.17.8.6 { foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.1648 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.3516 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.5824 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 0.8242 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.4091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.6091 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 0.7909 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8784,11 +31880,13 @@ do_test 1.17.8.1 { foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 100.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8799,11 +31897,13 @@ do_test 1.17.8.2 { foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8814,11 +31914,13 @@ do_test 1.17.8.3 { foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 98.0000 99.0000 99.0000 100.0000 101.0000 102.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8829,11 +31931,13 @@ do_test 1.17.8.4 { foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000} + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8844,11 +31948,13 @@ do_test 1.17.8.5 { foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8859,11 +31965,13 @@ do_test 1.17.8.6 { foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -8874,181 +31982,8632 @@ do_test 1.17.8.7 { foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] { lappend myres [format %.4f [set r]] } - set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 92.0000 93.0000 93.0000 94.0000 94.0000 95.0000 95.0000 96.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} do_execsql_test 1.17.9.1 { SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 {} {} {} {}} +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 {} {} {} {}} do_execsql_test 1.17.9.2 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {223 223 223 223 223 223 223 223 223 223 223 {} {} {} {} 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 210 {} {} {} {} 280 280 280 280 280 280 280 280 280 280 280 280 280 {} {} {} {} 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 279 {} {} {} {} 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 {} {} {} {} 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 206 {} {} {} {} 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 212 {} {} {} {} 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 207 {} {} {} {} 232 232 232 232 232 232 232 232 232 232 232 232 {} {} {} {} 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 {} {} {} {}} +} {223 223 223 223 223 223 223 223 223 223 {} {} {} + {} 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 {} {} {} {} 280 280 280 280 + 280 280 280 280 280 280 280 280 {} {} {} {} 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 {} {} {} {} 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 {} {} {} {} + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 {} {} {} {} 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 {} + {} {} {} 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 {} {} {} {} 232 232 232 + 232 232 232 232 232 232 232 232 232 {} {} {} {} + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 {} {} {} {}} do_execsql_test 1.17.9.3 { SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 {} {} {} {}} +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 {} {} {} {}} do_execsql_test 1.17.9.4 { SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {240 240 240 240 240 240 240 240 240 240 240 {} {} {} {} 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 {} {} {} {} 280 280 280 280 280 280 280 280 280 280 280 280 280 {} {} {} {} 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 252 {} {} {} {} 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 171 {} {} {} {} 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 274 {} {} {} {} 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 226 {} {} {} {} 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 {} {} {} {} 198 198 198 198 198 198 198 198 198 198 198 198 {} {} {} {} 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 276 {} {} {} {}} +} {240 240 240 240 240 240 240 240 240 240 {} {} {} + {} 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 {} {} {} {} 280 280 280 280 + 280 280 280 280 280 280 280 280 {} {} {} {} 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 {} {} {} {} 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 {} {} {} {} + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 {} {} {} {} 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 {} + {} {} {} 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 {} {} {} {} 198 198 198 + 198 198 198 198 198 198 198 198 198 {} {} {} {} + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 {} {} {} {}} do_execsql_test 1.17.9.5 { SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 229 {} {} {} {}} +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 {} {} {} {}} do_execsql_test 1.17.9.6 { SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.10.1 { SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {23 78 85 29 84 51 93 91 68 74 65 12 4 22 37 15 53 8 16 29 8 34 3 76 73 63 90 47 98 47 90 73 20 89 91 22 77 73 42 41 32 55 79 51 74 44 81 7 65 8 43 80 8 89 90 29 36 15 42 9 9 41 20 16 11 87 20 90 84 80 41 37 34 9 75 63 34 8 8 81 95 31 74 36 41 99 90 91 99 13 2 35 33 36 38 37 20 75 17 {} 5 34 58 33 19 31 50 34 23 5 72 90 11 85 90 36 2 {} 39 27 {} {} 64 2 74 95 37 {} 58 {} 34 44 {} {} 30 70 47 {} 7 {} 15 {} {} 12 33 36 99 17 {} {} 44 {} {} 12 {} {} {} 34 {} {} {} {} 36 44 {} 30 30 10 {} {} {} {} {} 30 {} {} {} 84 {} {} {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {74 65 12 4 22 37 15 53 8 16 29 8 34 3 76 73 + 63 90 47 98 47 90 73 20 89 91 22 77 73 42 41 + 32 55 79 51 74 44 81 7 65 8 43 80 8 89 90 29 + 36 15 42 9 9 41 20 16 11 87 20 90 84 80 41 37 + 34 9 75 63 34 8 8 81 95 31 74 36 41 99 90 91 + 99 13 2 35 33 36 38 37 20 75 17 {} 5 34 58 33 + 19 31 50 34 23 {} 72 90 11 85 90 36 2 {} 39 + 27 {} {} 64 2 74 95 37 {} 58 {} 34 44 {} {} + 30 70 47 {} 7 {} 15 {} {} 12 33 36 99 17 {} + {} 44 {} {} 12 {} {} {} 34 {} {} {} {} 36 44 + {} 30 30 10 {} {} {} {} {} 30 {} {} {} 84 {} + {} {} {} {} {} {} 7 {} {} {} {} {} {} {} {} + {} {} {} {} {} {}} do_execsql_test 1.17.10.2 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 21 {} {} {} 31 {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} 72 {} {} {} 82 {} {} {} {} {} {} {} {} {} {} {} {} 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 5 {} {} {} {} {} {} {} {} {} {} {} {} 76 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 27 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 21 {} {} {} 31 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 72 {} {} {} 82 + {} {} {} {} {} {} {} {} {} {} 73 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} 76 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 27 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 38 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.10.3 { SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {2 3 3 5 5 6 7 7 8 9 9 10 11 12 12 13 13 14 15 15 16 16 19 20 21 22 22 23 23 25 26 26 27 28 29 29 30 31 32 33 33 33 34 34 34 35 36 36 37 37 38 39 39 40 41 41 42 43 44 44 46 47 47 49 50 51 52 53 55 55 56 56 57 58 58 58 59 59 59 60 61 62 63 64 65 65 67 68 69 72 72 73 73 74 74 74 75 75 76 77 78 80 81 81 83 84 84 85 85 86 87 88 89 89 90 90 91 91 91 91 93 93 94 95 95 96 97 98 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {3 4 6 7 7 8 8 9 10 11 12 12 13 13 14 15 15 + 16 16 19 20 21 22 22 23 24 26 27 27 28 29 29 + 30 30 32 33 33 34 34 34 35 36 36 37 38 38 39 + 39 41 42 43 43 44 46 46 47 47 49 51 52 53 54 + 55 56 56 56 58 58 58 59 59 59 60 61 62 62 64 + 65 65 66 68 69 72 72 73 73 74 75 75 76 77 77 + 78 80 81 81 83 84 84 85 85 87 87 88 89 90 90 + 90 91 91 91 91 93 93 95 95 96 96 97 98 99 99 + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.10.4 { SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {30 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 21 31 91 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 22 22 32 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 33 33 83 93 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 44 84 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 55 65 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 36 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 57 67 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 78 88 98 {} {} {} {} {} {} {} {} {} {} {} {} {} 59 59 69 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} 21 + 31 91 91 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 22 32 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 33 33 93 93 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 44 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 65 95 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 46 {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 47 57 + 67 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 78 88 98 {} {} {} {} {} {} {} {} {} + {} {} {} {} 59 59 69 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.10.5 { SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {80 84 22 2 34 41 85 23 24 34 25 12 13 11 72 3 85 95 4 75 85 21 65 73 44 31 62 42 4 3 73 13 2 95 56 56 43 2 25 33 83 73 34 72 26 43 13 82 46 16 13 15 65 66 74 14 77 94 57 95 73 65 35 26 16 97 4 97 67 95 98 65 44 5 74 95 68 57 47 26 78 27 5 64 99 8 78 16 16 26 78 27 5 16 99 29 97 96 98 36 79 49 7 46 76 59 {} 58 38 7 5 56 {} 88 59 {} 39 26 {} 56 87 {} 88 76 58 67 77 {} 9 79 49 37 88 {} {} {} 28 98 99 {} 59 39 {} 58 {} {} {} 99 27 39 {} 29 {} {} 8 {} {} {} 69 49 39 88 {} {} {} 38 99 {} {} {} {} 29 {} 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {85 72 12 84 31 95 33 34 35 5 2 93 51 12 95 15 + 34 96 46 21 95 23 84 31 52 2 34 54 73 33 72 + 16 26 26 63 65 23 84 33 14 72 16 53 3 82 56 + 16 73 6 95 67 47 74 27 65 73 5 85 46 96 77 84 + 7 47 65 8 85 64 95 4 75 98 66 98 7 5 64 89 + 58 28 86 56 66 98 7 5 76 89 89 77 26 58 36 29 + 59 68 46 96 29 {} 89 59 87 96 36 {} 58 9 {} + 99 36 {} {} 88 76 58 67 77 {} 79 49 59 37 88 + {} {} {} 28 98 89 {} 39 99 {} 58 {} {} {} 69 + 27 {} {} 59 {} {} 8 {} {} {} 39 59 99 88 {} + {} {} 38 69 {} {} {} {} 59 {} 89 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {}} do_execsql_test 1.17.10.6 { SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.11.1 { SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7 5 {} {} {} {}} +} {38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 + 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 + 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 + 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 + 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 + 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 + 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 + 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 + 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 + 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 + 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 + 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 + 17 7 {} {} {} {}} do_execsql_test 1.17.11.2 { SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {80 20 90 60 70 80 90 30 50 10 30 {} {} {} {} 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 {} {} {} {} 22 42 2 72 12 22 2 72 72 12 62 52 82 {} {} {} {} 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 {} {} {} {} 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 {} {} {} {} 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 {} {} {} {} 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 {} {} {} {} 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 {} {} {} {} 28 98 78 58 98 8 88 8 58 58 58 38 {} {} {} {} 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39 {} {} {} {}} +} {20 90 60 70 80 90 30 50 10 30 {} {} {} {} 91 + 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 + {} {} {} {} 42 2 72 12 22 2 72 72 12 62 52 82 + {} {} {} {} 3 43 33 53 63 73 13 73 73 33 93 + 23 13 33 3 33 83 {} {} {} {} 4 94 84 74 34 34 + 44 74 64 14 34 84 84 44 34 {} {} {} {} 55 15 + 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 + {} {} {} {} 16 16 86 56 56 56 16 36 76 96 96 + 26 26 36 66 36 36 {} {} {} {} 77 47 7 47 87 + 37 87 77 7 57 47 47 37 27 17 7 {} {} {} {} 28 + 98 78 58 98 8 88 8 58 58 58 38 {} {} {} {} 29 + 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 + 39 {} {} {} {}} do_execsql_test 1.17.11.3 { SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {2 2 3 3 4 5 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 21 22 22 23 23 23 24 25 26 26 26 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 41 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 74 74 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 98 98 99 99 99 {} {} {} {}} +} {3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 11 11 12 + 12 12 13 13 14 15 15 15 16 16 16 17 19 20 21 + 21 22 22 23 23 24 25 26 26 27 27 28 29 29 29 + 30 30 30 31 31 32 33 33 33 33 34 34 34 34 35 + 35 36 36 36 36 37 37 38 38 39 39 39 40 41 41 + 42 43 43 44 44 46 46 47 47 47 47 49 50 51 52 + 53 54 55 55 56 56 56 57 58 58 58 58 59 59 59 + 59 60 61 61 62 62 63 64 65 65 65 66 67 68 69 + 70 72 72 72 73 73 73 74 74 74 75 75 75 76 77 + 77 78 78 79 80 80 81 81 81 82 83 84 84 84 84 + 85 85 85 86 87 87 88 89 89 89 90 90 90 91 91 + 91 91 91 93 93 93 94 95 95 95 96 96 96 97 97 + 98 98 99 99 {} {} {} {}} do_execsql_test 1.17.11.4 { SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {30 30 40 50 60 70 80 80 90 90 90 {} {} {} {} 21 21 31 31 41 41 41 51 61 61 81 81 81 91 91 91 91 91 {} {} {} {} 12 12 22 22 32 42 52 62 62 72 72 72 82 {} {} {} {} 23 23 23 33 33 33 33 33 43 43 53 63 73 73 73 83 93 93 93 {} {} {} {} 34 34 34 44 44 54 64 74 74 74 74 74 84 84 84 84 94 {} {} {} {} 15 25 35 35 55 55 65 65 65 75 75 75 85 85 85 95 95 95 {} {} {} {} 26 26 26 36 36 36 36 46 46 56 56 56 66 76 86 96 96 96 {} {} {} {} 27 27 37 37 47 47 47 47 57 67 77 77 87 87 97 97 {} {} {} {} 38 38 58 58 58 58 68 78 78 88 98 98 {} {} {} {} 29 29 29 39 39 39 49 59 59 59 59 69 79 89 89 89 99 99 99 {} {} {} {}} +} {30 40 50 60 70 80 80 90 90 90 {} {} {} {} 21 + 21 31 31 41 41 51 61 61 81 81 81 91 91 91 91 + 91 {} {} {} {} 12 22 22 32 42 52 62 62 72 72 + 72 82 {} {} {} {} 23 23 33 33 33 33 43 43 53 + 63 73 73 73 83 93 93 93 {} {} {} {} 34 34 34 + 44 44 54 64 74 74 74 84 84 84 84 94 {} {} {} + {} 25 35 35 55 55 65 65 65 75 75 75 85 85 85 + 95 95 95 {} {} {} {} 26 26 36 36 36 36 46 46 + 56 56 56 66 76 86 96 96 96 {} {} {} {} 27 27 + 37 37 47 47 47 47 57 67 77 77 87 87 97 97 {} + {} {} {} 38 38 58 58 58 58 68 78 78 88 98 98 + {} {} {} {} 29 29 29 39 39 39 49 59 59 59 59 + 69 79 89 89 89 99 99 {} {} {} {}} do_execsql_test 1.17.11.5 { SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {80 20 90 60 70 80 90 30 50 10 30 41 81 91 61 91 91 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 2 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 23 33 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 23 13 33 3 33 83 74 74 54 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 5 26 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 58 58 38 99 89 59 39 99 29 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 39 {} {} {} {}} +} {20 90 60 70 80 90 30 50 10 30 81 91 61 91 91 + 1 81 41 61 1 21 11 51 41 31 31 11 81 91 91 21 + 62 12 32 22 42 2 72 12 22 2 72 72 12 62 52 82 + 93 23 93 43 3 43 33 53 63 73 13 73 73 33 93 + 23 13 33 3 33 83 54 84 74 24 4 94 84 74 34 34 + 44 74 64 14 34 84 84 44 34 65 35 85 85 55 15 + 25 75 95 65 65 35 5 15 95 55 75 85 75 15 95 + 96 46 6 46 16 16 86 56 56 56 16 36 76 96 96 + 26 26 36 66 36 36 97 27 97 67 77 47 7 47 87 + 37 87 77 7 57 47 47 37 27 17 7 38 68 78 8 28 + 98 78 58 98 8 88 8 58 58 58 38 89 59 39 99 29 + 59 89 89 29 9 79 49 59 29 59 19 39 9 9 99 69 + 39 {} {} {} {}} do_execsql_test 1.17.11.6 { SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.12.1 { SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} do_execsql_test 1.17.12.2 { SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.12.3 { SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 1 2 2 3 3 5 5 7 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.12.4 { SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 25 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.12.5 { SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 16 23 12 85 62 13 53 94 12 75 23 73 72 26 96 33 55 25 96 74 34 47 84 37 55 53 25 84 75 86 36 54 36 36 55 68 84 84 95 74 65 27 37 87 76 78 57 95 34 99 58 17 96 46 76 78 57 95 86 99 89 36 16 68 96 89 89 47 95 56 59 {} 88 8 97 85 16 {} 78 79 39 59 36 {} 46 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}} +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} do_execsql_test 1.17.12.6 { SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.13.1 { SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} 6 {} 0 {} {} {} 81 46 6 {} {} 74 {} 23 {} {} {} {} {} 27 {} 99 {} 35 6 {} 12 {} 23 {} 41 61 84 {} 93 39 47 2 54 46 96 56 {} 16 {} {} {} {} 89 {} 16 43 74 85 56 29 99 53 {} 59 33 23 91 59 53 84 99 {} 93 63 47 41 74 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 64 8 91 31 52 30 83} +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} do_execsql_test 1.17.13.2 { SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} 1 {} {} {} 41 {} {} {} {} {} {} 22 {} {} {} 12 {} {} 62 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} {} {} {} 54 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 55 {} 75 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} 29 9 {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} do_execsql_test 1.17.13.3 { SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 0 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 10 11 11 11 11 11 12 12 12 12 12 12 13 13 13 14 14 15 15 15 15 15 16 16 16 16 17 19 19 20 20 21 21 22 22 22 22 23 23 23 23 23 23 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 27 27 27 27 27 27 28 29 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 34 34 34 34 35 35 35 35 36 36 36 36 36 36 36 36 37 37 37 37 37 38 38 38 39 39 39 39 39 39 39 40 41 41 41 41 41 42 43 43 44 43 44 44 44 44 46 46 46 47 47 47 47 47 47 47 49 50} +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} do_execsql_test 1.17.13.4 { SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.13.5 { SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} {} {} {} {} {} 91 {} {} {} 61 20 81 {} {} {} 0 1 {} {} {} 41 91 {} 11 70 91 0 22 {} 81 61 12 {} {} 62 {} 0 {} 31 81 {} 91 {} 81 23 61 41 90 90 {} 82 {} {} 21 {} 72 43 32 23 42 {} 30 80 1 {} 60 93 54 {} 90 50 82 23 12 81 11 74 43 90 30 52 53 81 63 41 81 2 34 54 31 30 42 2 3 75 44 91 93 12 31 22 55 41 75 84 1 83 15 74 35 5 22 13 33 3 85 44 23 62 12 5 15 55 33 25 75 12 75 2 74 33 85 36 55 53 75 73 83 47 65 35 5 96 36 27 7 46 84 74 47 36 33 74 15 13 68 94 8 75 15 95 66 54 74 96 97 4 7 16 44 34 37 89 5 36 36 68 96 58 47 29 9 35 56 7} +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} do_execsql_test 1.17.13.6 { SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.14.1 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {23.99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 84.33.21.39.44.58.30.38.34.83.27.82.17.7.5 33.21.39.44.58.30.38.34.83.27.82.17.7.5 21.39.44.58.30.38.34.83.27.82.17.7.5 39.44.58.30.38.34.83.27.82.17.7.5 44.58.30.38.34.83.27.82.17.7.5 58.30.38.34.83.27.82.17.7.5 30.38.34.83.27.82.17.7.5 38.34.83.27.82.17.7.5 34.83.27.82.17.7.5 83.27.82.17.7.5 27.82.17.7.5 82.17.7.5 17.7.5 7.5 5 {} {} {} {}} +} {38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.21.39.44.58.30.38.34.83.27.82.17.7 21.39.44.58.30.38.34.83.27.82.17.7 + 39.44.58.30.38.34.83.27.82.17.7 44.58.30.38.34.83.27.82.17.7 + 58.30.38.34.83.27.82.17.7 30.38.34.83.27.82.17.7 38.34.83.27.82.17.7 + 34.83.27.82.17.7 83.27.82.17.7 27.82.17.7 82.17.7 17.7 7 {} + {} {} {}} do_execsql_test 1.17.14.2 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {80.20.90.60.70.80.90.30.50.10.30 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 {} {} {} {} 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 41.61.1.21.11.51.41.31.31.11.81.91.91.21 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 31.11.81.91.91.21 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 {} {} {} {} 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 72.72.12.62.52.82 72.12.62.52.82 12.62.52.82 62.52.82 52.82 82 {} {} {} {} 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 53.63.73.13.73.73.33.93.23.13.33.3.33.83 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 23.13.33.3.33.83 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 {} {} {} {} 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 94.84.74.34.34.44.74.64.14.34.84.84.44.34 84.74.34.34.44.74.64.14.34.84.84.44.34 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 {} {} {} {} 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5 95.65.65.35.5.15.95.55.75.85.75.15.95.5 65.65.35.5.15.95.55.75.85.75.15.95.5 65.35.5.15.95.55.75.85.75.15.95.5 35.5.15.95.55.75.85.75.15.95.5 5.15.95.55.75.85.75.15.95.5 15.95.55.75.85.75.15.95.5 95.55.75.85.75.15.95.5 55.75.85.75.15.95.5 75.85.75.15.95.5 85.75.15.95.5 75.15.95.5 15.95.5 95.5 5 {} {} {} {} 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.56.16.36.76.96.96.26.26.36.66.36.36 56.56.16.36.76.96.96.26.26.36.66.36.36 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 26.36.66.36.36 36.66.36.36 66.36.36 36.36 36 {} {} {} {} 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 7.47.87.37.87.77.7.57.47.47.37.27.17.7 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 47.47.37.27.17.7 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 {} {} {} {} 28.98.78.58.98.8.88.8.58.58.58.38 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 88.8.58.58.58.38 8.58.58.58.38 58.58.58.38 58.58.38 58.38 38 {} {} {} {} 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39 {} {} {} {}} +} {20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 + 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 + 90.30.50.10.30 30.50.10.30 50.10.30 10.30 30 {} {} {} {} + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 + 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 + 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 + 31.11.81.91.91.21 11.81.91.91.21 81.91.91.21 91.91.21 91.21 21 + {} {} {} {} 42.2.72.12.22.2.72.72.12.62.52.82 + 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 + 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 + 72.72.12.62.52.82 72.12.62.52.82 12.62.52.82 62.52.82 52.82 82 + {} {} {} {} 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 + 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 + 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 + 23.13.33.3.33.83 13.33.3.33.83 33.3.33.83 3.33.83 33.83 83 {} + {} {} {} 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 + 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 + 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 + 34.84.84.44.34 84.84.44.34 84.44.34 44.34 34 {} {} {} {} + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 95.65.65.35.5.15.95.55.75.85.75.15.95 65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.5.15.95.55.75.85.75.15.95 35.5.15.95.55.75.85.75.15.95 + 5.15.95.55.75.85.75.15.95 15.95.55.75.85.75.15.95 95.55.75.85.75.15.95 + 55.75.85.75.15.95 75.85.75.15.95 85.75.15.95 75.15.95 15.95 95 + {} {} {} {} 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 + 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 + 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 + 26.36.66.36.36 36.66.36.36 66.36.36 36.36 36 {} {} {} {} + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 + 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 + 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 + 47.47.37.27.17.7 47.37.27.17.7 37.27.17.7 27.17.7 17.7 7 {} + {} {} {} 28.98.78.58.98.8.88.8.58.58.58.38 + 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 + 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 + 88.8.58.58.58.38 8.58.58.58.38 58.58.58.38 58.58.38 58.38 38 {} + {} {} {} 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39 {} + {} {} {}} do_execsql_test 1.17.14.3 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {2.2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 2.3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 3.4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 4.5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 15.16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 16.17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 17.19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 19.20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 20.21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 21.22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 22.23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 23.24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 24.25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 25.26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 28.29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 29.30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 30.31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 31.32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 32.33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 36.37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 37.38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 38.39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 39.40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 40.41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 66.67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 67.68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 68.69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 69.70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 70.72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 72.73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 73.74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 93.94.95.95.95.96.96.96.97.97.98.98.99.99.99 94.95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.95.96.96.96.97.97.98.98.99.99.99 95.95.96.96.96.97.97.98.98.99.99.99 95.96.96.96.97.97.98.98.99.99.99 96.96.96.97.97.98.98.99.99.99 96.96.97.97.98.98.99.99.99 96.97.97.98.98.99.99.99 97.97.98.98.99.99.99 97.98.98.99.99.99 98.98.99.99.99 98.99.99.99 99.99.99 99.99 99 {} {} {} {}} +} {3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 94.95.95.95.96.96.96.97.97.98.98.99.99 + 95.95.95.96.96.96.97.97.98.98.99.99 95.95.96.96.96.97.97.98.98.99.99 + 95.96.96.96.97.97.98.98.99.99 96.96.96.97.97.98.98.99.99 + 96.96.97.97.98.98.99.99 96.97.97.98.98.99.99 97.97.98.98.99.99 + 97.98.98.99.99 98.98.99.99 98.99.99 99.99 99 {} {} {} {}} do_execsql_test 1.17.14.4 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {30.30.40.50.60.70.80.80.90.90.90 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 {} {} {} {} 21.21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 21.31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 31.41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.41.51.61.61.81.81.81.91.91.91.91.91 41.41.51.61.61.81.81.81.91.91.91.91.91 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 {} {} {} {} 12.12.22.22.32.42.52.62.62.72.72.72.82 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 62.72.72.72.82 72.72.72.82 72.72.82 72.82 82 {} {} {} {} 23.23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 23.33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.33.43.43.53.63.73.73.73.83.93.93.93 33.33.43.43.53.63.73.73.73.83.93.93.93 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 {} {} {} {} 34.34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 34.44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.44.54.64.74.74.74.74.74.84.84.84.84.94 44.54.64.74.74.74.74.74.84.84.84.84.94 54.64.74.74.74.74.74.84.84.84.84.94 64.74.74.74.74.74.84.84.84.84.94 74.74.74.74.74.84.84.84.84.94 74.74.74.74.84.84.84.84.94 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 {} {} {} {} 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.55.65.65.65.75.75.75.85.85.85.95.95.95 55.65.65.65.75.75.75.85.85.85.95.95.95 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 {} {} {} {} 26.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.36.46.46.56.56.56.66.76.86.96.96.96 36.36.46.46.56.56.56.66.76.86.96.96.96 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 76.86.96.96.96 86.96.96.96 96.96.96 96.96 96 {} {} {} {} 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.37.47.47.47.47.57.67.77.77.87.87.97.97 37.47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 {} {} {} {} 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 78.78.88.98.98 78.88.98.98 88.98.98 98.98 98 {} {} {} {} 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.39.49.59.59.59.59.69.79.89.89.89.99.99.99 39.49.59.59.59.59.69.79.89.89.89.99.99.99 49.59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.59.69.79.89.89.89.99.99.99 59.59.59.69.79.89.89.89.99.99.99 59.59.69.79.89.89.89.99.99.99 59.69.79.89.89.89.99.99.99 69.79.89.89.89.99.99.99 79.89.89.89.99.99.99 89.89.89.99.99.99 89.89.99.99.99 89.99.99.99 99.99.99 99.99 99 {} {} {} {}} +} {30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 + 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 + 80.80.90.90.90 80.90.90.90 90.90.90 90.90 90 {} {} {} {} + 21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 + 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 + 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 + 91.91.91.91.91 91.91.91.91 91.91.91 91.91 91 {} {} {} {} + 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 + 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 + 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 + 62.72.72.72.82 72.72.72.82 72.72.82 72.82 82 {} {} {} {} + 23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 + 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 + 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 + 73.83.93.93.93 83.93.93.93 93.93.93 93.93 93 {} {} {} {} + 34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.44.44.54.64.74.74.74.84.84.84.84.94 + 44.44.54.64.74.74.74.84.84.84.84.94 44.54.64.74.74.74.84.84.84.84.94 + 54.64.74.74.74.84.84.84.84.94 64.74.74.74.84.84.84.84.94 + 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 + 84.84.84.84.94 84.84.84.94 84.84.94 84.94 94 {} {} {} {} + 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.65.65.65.75.75.75.85.85.85.95.95.95 + 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 + 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 + 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 + 85.85.95.95.95 85.95.95.95 95.95.95 95.95 95 {} {} {} {} + 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 + 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 + 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 + 76.86.96.96.96 86.96.96.96 96.96.96 96.96 96 {} {} {} {} + 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.47.47.47.47.57.67.77.77.87.87.97.97 + 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 + 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 + 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 + 77.87.87.97.97 87.87.97.97 87.97.97 97.97 97 {} {} {} {} + 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 + 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 + 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 + 78.78.88.98.98 78.88.98.98 88.98.98 98.98 98 {} {} {} {} + 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.49.59.59.59.59.69.79.89.89.89.99.99 + 49.59.59.59.59.69.79.89.89.89.99.99 59.59.59.59.69.79.89.89.89.99.99 + 59.59.59.69.79.89.89.89.99.99 59.59.69.79.89.89.89.99.99 + 59.69.79.89.89.89.99.99 69.79.89.89.89.99.99 79.89.89.89.99.99 + 89.89.89.99.99 89.89.99.99 89.99.99 99.99 99 {} {} {} {}} do_execsql_test 1.17.14.5 { SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2 -} {80.20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 20.90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 60.70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 70.80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 80.90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 90.30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 50.10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 10.30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 30.41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 61.1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 1.21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 51.41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 41.31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 31.11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 11.81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 81.91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 91.21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 21.2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 32.22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 42.2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 22.2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 2.72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 72.12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 12.62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 62.52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 52.82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 82.23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 53.63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 63.73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 73.33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 93.23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 23.13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 13.33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 3.33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 33.83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 83.74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 65.35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 35.5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 55.75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 85.75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 75.15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 15.95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 95.5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 5.26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 28.98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 78.58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 98.8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 88.8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 8.58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 58.38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 38.99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 29.9.79.49.59.29.59.19.39.9.9.99.69.39 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39 {} {} {} {}} +} {20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39 9.99.69.39 99.69.39 69.39 39 {} + {} {} {}} do_execsql_test 1.17.14.6 { SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2 -} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}} +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.17.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.17.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.17.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} do_execsql_test 1.17.15.1 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) -} {197 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 196 99.33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 195 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 194 33.89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 193 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 192 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 191 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 189 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 187 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 185 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 183 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 181 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 179 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 177 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 175 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 173 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 171 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 169 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 167 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 165 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 163 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 161 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 159 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 157 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 155 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 153 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 151 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 149 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 147 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 145 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 143 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 141 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 139 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 137 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 135 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 133 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 131 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 129 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 127 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 125 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 123 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 121 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 119 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 117 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 115 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 113 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 111 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 109 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 107 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 105 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 103 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 101 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 99 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 97 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 95 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 93 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 91 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 89 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 87 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 85 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 83 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 81 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 79 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 77 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 75 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 73 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 71 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 69 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 67 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 65 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 63 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 61 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 59 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 57 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 55 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 53 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 51 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 49 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 47 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 45 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 43 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 41 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 39 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 37 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 35 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 33 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 31 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 29 15.36.3.69.52.50.10.33.39.58.38.83.82.7 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 27 36.3.69.52.50.10.33.39.58.38.83.82.7 26 36.3.69.52.50.10.33.39.58.38.83.82.7 25 3.69.52.50.10.33.39.58.38.83.82.7 24 3.69.52.50.10.33.39.58.38.83.82.7 23 69.52.50.10.33.39.58.38.83.82.7 22 69.52.50.10.33.39.58.38.83.82.7 21 52.50.10.33.39.58.38.83.82.7 20 52.50.10.33.39.58.38.83.82.7 19 50.10.33.39.58.38.83.82.7 18 50.10.33.39.58.38.83.82.7 17 10.33.39.58.38.83.82.7 16 10.33.39.58.38.83.82.7 15 33.39.58.38.83.82.7 14 33.39.58.38.83.82.7 13 39.58.38.83.82.7 12 39.58.38.83.82.7 11 58.38.83.82.7 10 58.38.83.82.7 9 38.83.82.7 8 38.83.82.7 7 83.82.7 6 83.82.7 5 82.7 4 82.7 3 7 2 7 1 {} 0 {} 0 {} 0 {} 0 {}} +} {187 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 185 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 183 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 181 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 179 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 177 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 175 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 173 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 171 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 169 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 167 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 165 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 163 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 161 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 159 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 157 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 155 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 153 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 151 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 149 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 147 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 145 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 143 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 141 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 139 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 137 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 135 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 133 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 131 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 129 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 127 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 125 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 123 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 121 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 119 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 117 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 115 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 113 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 111 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 109 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 107 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 105 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 103 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 101 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 99 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 97 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 95 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 93 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 91 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 89 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 87 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 85 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 83 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 81 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 79 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 77 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 75 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 73 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 71 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 69 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 67 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 65 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 63 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 61 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 59 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 57 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 55 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 53 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 51 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 49 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 47 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 45 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 43 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 41 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 39 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 37 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 35 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 33 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 31 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 29 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 27 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 26 36.3.69.52.50.10.33.39.58.38.83.82.7 + 25 36.3.69.52.50.10.33.39.58.38.83.82.7 + 24 3.69.52.50.10.33.39.58.38.83.82.7 23 3.69.52.50.10.33.39.58.38.83.82.7 + 22 69.52.50.10.33.39.58.38.83.82.7 21 69.52.50.10.33.39.58.38.83.82.7 + 20 52.50.10.33.39.58.38.83.82.7 19 52.50.10.33.39.58.38.83.82.7 + 18 50.10.33.39.58.38.83.82.7 17 50.10.33.39.58.38.83.82.7 + 16 10.33.39.58.38.83.82.7 15 10.33.39.58.38.83.82.7 + 14 33.39.58.38.83.82.7 13 33.39.58.38.83.82.7 12 39.58.38.83.82.7 + 11 39.58.38.83.82.7 10 58.38.83.82.7 9 58.38.83.82.7 8 38.83.82.7 + 7 38.83.82.7 6 83.82.7 5 83.82.7 4 82.7 3 82.7 2 7 1 7 0 {} + 0 {} 0 {} 0 {}} do_execsql_test 1.17.15.2 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 0=1) OVER win FROM t2 WINDOW win AS (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) -} {197 {} 196 {} 195 {} 194 {} 193 {} 192 {} 191 {} 190 {} 189 {} 188 {} 187 {} 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} 179 {} 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} 171 {} 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} 163 {} 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} 155 {} 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} 147 {} 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} 139 {} 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} 131 {} 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} 123 {} 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} 115 {} 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} 107 {} 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} 99 {} 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} 90 {} 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} 81 {} 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} 72 {} 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} 63 {} 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} 54 {} 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} 45 {} 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} 36 {} 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} 27 {} 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {}} +} {187 {} 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} + 179 {} 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} + 171 {} 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} + 163 {} 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} + 155 {} 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} + 147 {} 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} + 139 {} 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} + 131 {} 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} + 123 {} 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} + 115 {} 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} + 107 {} 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} + 99 {} 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} + 90 {} 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} + 81 {} 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} + 72 {} 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} + 63 {} 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} + 54 {} 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} + 45 {} 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} + 36 {} 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} + 27 {} 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} + 0 {} 0 {}} do_execsql_test 1.17.15.3 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE 1=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) -} {16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {}} +} {16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 15 {} 14 {} + 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} + 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 15 {} 14 {} 13 {} + 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} + 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} + 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} + 1 {} 0 {} 0 {} 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} + 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} + 0 {} 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} + 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} + 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 15 {} 14 {} + 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} + 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {}} do_execsql_test 1.17.15.4 { SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') FILTER (WHERE a%2=0) OVER win FROM t2 WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) -} {16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 13 78.72.98.87.73.96.74.90.75.91.69.39.7 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 5 75.91.69.39.7 4 91.69.39.7 3 69.39.7 2 39.7 1 7 0 {} 0 {} 0 {} 0 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 13 89.29.9.21.12.88.55.70.58.81.91.52.58 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 5 58.81.91.52.58 4 81.91.52.58 3 91.52.58 2 52.58 1 58 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 13 76.63.73.65.20.8.77.19.9.23.15.50.38 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 13 4.87.65.5.31.49.2.26.72.13.36.10.83 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 1 83 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 13 42.80.58.11.95.90.85.47.33.14.3.33.82 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 5 33.14.3.33.82 4 14.3.33.82 3 3.33.82 2 33.82 1 82 0 {} 0 {} 0 {} 0 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {}} +} {16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 13 78.72.98.87.73.96.74.90.75.91.69.39.7 + 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 + 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 + 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 + 5 75.91.69.39.7 4 91.69.39.7 3 69.39.7 2 39.7 1 7 0 {} 0 {} + 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} + 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 13 89.29.9.21.12.88.55.70.58.81.91.52.58 + 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 + 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 + 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 + 5 58.81.91.52.58 4 81.91.52.58 3 91.52.58 2 52.58 1 58 0 {} + 0 {} 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} + 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} + 0 {} 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 13 76.63.73.65.20.8.77.19.9.23.15.50.38 + 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 + 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 + 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 + 5 9.23.15.50.38 4 23.15.50.38 3 15.50.38 2 50.38 1 38 0 {} 0 {} + 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {} + 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 13 4.87.65.5.31.49.2.26.72.13.36.10.83 + 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 + 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 + 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 + 5 72.13.36.10.83 4 13.36.10.83 3 36.10.83 2 10.83 1 83 0 {} + 0 {} 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} + 8 {} 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} + 0 {} 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 13 42.80.58.11.95.90.85.47.33.14.3.33.82 + 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 + 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 + 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 + 5 33.14.3.33.82 4 14.3.33.82 3 3.33.82 2 33.82 1 82 0 {} 0 {} + 0 {} 0 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} 3 {} 2 {} 1 {} 0 {} 0 {} 0 {} 0 {}} + +do_execsql_test 1.18.2.1 { + SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 95 99 99 99 99 95 95 84 84 84 84 84 84 + 84 84 83 83 83 83 82 83 83 83 83} + +do_execsql_test 1.18.2.2 { + SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 + 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 3 3 + 3 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 17} + +do_execsql_test 1.18.3.1 { + SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.18.3.2 { + SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.18.3.3 { + SELECT row_number() OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.18.4.1 { + SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.18.4.2 { + SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.18.4.3 { + SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} + +do_execsql_test 1.18.4.4 { + SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} + +do_execsql_test 1.18.4.5 { + SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} + +do_execsql_test 1.18.4.6 { + SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} + +do_execsql_test 1.18.5.1 { + SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.18.5.2 { + SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.18.5.3 { + SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} + +do_execsql_test 1.18.5.4 { + SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} + +do_execsql_test 1.18.5.5 { + SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} + +do_execsql_test 1.18.5.6 { + SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} + +do_execsql_test 1.18.6.1 { + SELECT + row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ), + rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ), + dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + FROM t2 +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} + + +do_test 1.18.7.1 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.7.2 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.7.3 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.7.4 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.7.5 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.7.6 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.1 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.2 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.3 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.4 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.5 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.6 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.1 { + set myres {} + foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.2 { + set myres {} + foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.3 { + set myres {} + foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.4 { + set myres {} + foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.5 { + set myres {} + foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.6 { + set myres {} + foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.18.8.7 { + set myres {} + foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + +do_execsql_test 1.18.9.1 { + SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 216} + +do_execsql_test 1.18.9.2 { + SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 196 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 234 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 221 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 235 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 189 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 216 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 250 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 249} + +do_execsql_test 1.18.9.3 { + SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 120} + +do_execsql_test 1.18.9.4 { + SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 218 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 261 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 228 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 130 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 271 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 213 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 195 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 119 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 171 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 120} + +do_execsql_test 1.18.9.5 { + SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 249} + +do_execsql_test 1.18.9.6 { + SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.10.1 { + SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {98 9 73 75 43 78 32 4 5 25 27 15 31 24 43 98 + 94 79 77 61 22 79 8 73 3 85 43 34 98 36 63 91 + 11 20 21 75 90 56 96 84 5 28 33 5 56 59 81 19 + 87 36 2 26 63 73 89 95 74 73 79 29 70 65 33 + 14 26 47 94 14 15 5 72 41 11 75 19 53 91 79 + 37 91 93 59 58 36 23 84 33 73 47 58 34 58 73 + 15 13 7 11 99 31 66 38 80 79 95 60 59 19 59 + {} 85 39 27 {} 9 59 75 91 33 {} 84 {} 33 50 + {} {} 36 77 29 {} 30 {} 12 {} 17 75 58 62 91 + 58 {} {} 50 {} 27 75 {} {} {} 33 {} {} {} {} + 62 50 17 36 36 95 {} {} {} {} {} 10 {} {} {} + 99 {} {} {} {} {} {} {} 30 {} {} {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.10.2 { + SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} 91 {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} 83 {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 94 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 85 {} {} {} {} {} {} 95 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 66 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 87 {} {} {} {} {} 37 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} 58 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 19 {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.10.3 { + SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {2 2 2 2 2 3 5 7 7 8 8 9 9 10 11 12 12 12 + 13 15 15 16 16 16 19 20 21 22 23 23 25 26 26 + 27 29 30 30 31 32 33 33 33 34 34 35 36 36 36 + 37 38 39 39 40 41 41 43 43 44 46 47 47 47 49 + 50 51 52 54 55 56 56 56 57 58 58 59 59 59 60 + 61 62 63 64 65 66 67 69 70 72 73 73 74 74 74 + 75 77 78 79 80 81 82 83 84 84 84 85 86 87 87 + 88 89 89 90 90 91 91 91 93 93 94 95 96 96 96 + 97 98 99 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.10.4 { + SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {90 {} {} {} {} {} {} {} {} {} {} {} {} {} 11 + 11 61 61 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 72 72 {} {} {} {} {} + {} {} {} {} {} {} 23 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 85 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 86 86 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 47 47 + 47 97 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} + {} {} {} {} 49 49 49 99 {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.10.5 { + SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {65 72 81 34 41 35 73 74 14 15 32 53 1 2 35 5 + 74 95 55 61 75 63 34 81 12 91 74 93 43 33 22 + 75 56 56 23 85 72 23 33 84 22 15 93 73 12 6 + 46 43 75 75 36 87 54 87 85 43 15 84 85 56 66 + 83 36 97 85 78 34 94 75 33 65 17 36 68 7 15 + 94 38 78 27 95 96 36 68 7 15 16 38 89 66 56 + 38 76 89 89 47 85 56 59 {} 8 88 27 95 16 {} + 98 79 39 59 16 {} {} 8 16 98 36 66 {} 99 29 + 59 97 8 {} {} {} 27 17 8 {} 8 58 {} 98 {} {} + {} 29 87 19 {} 89 {} {} 37 {} {} {} 59 59 58 + 8 99 {} {} 98 29 {} {} {} {} 58 {} 89 {} {} + {} {} {} {} {} {} {} {} {} {} {} 19 {} {} {} + {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.10.6 { + SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.11.1 { + SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {81 89 89 89 89 81 96 59 38 68 39 62 91 46 6 + 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 + 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 + 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 + 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 + 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 + 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 + 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 + 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 + 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 + 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 + 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 + 39 44 58 30 38 34 83} + +do_execsql_test 1.18.11.2 { + SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {40 90 90 90 90 40 30 80 20 90 60 70 80 90 91 + 81 81 81 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 12 62 62 62 62 12 32 22 42 2 72 + 12 22 2 72 72 23 93 93 93 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 84 54 54 54 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 35 + 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 46 96 96 96 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 27 97 97 97 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 68 + 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 59 + 89 89 89 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} + +do_execsql_test 1.18.11.3 { + SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 1 1 1 1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 + 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 + 16 16 17 19 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 + 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 + 39 39 39 40 41 41 42 43 43 44 44 46 46 47 47 + 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 + 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 + 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 + 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 + 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 + 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 + 95 96 96 96 97 97} + +do_execsql_test 1.18.11.4 { + SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {20 10 10 10 10 20 30 30 30 40 50 60 70 80 1 1 + 1 1 1 1 11 11 21 21 31 31 41 41 51 61 61 81 + 81 81 91 2 2 2 2 2 2 12 12 12 22 22 32 42 + 52 62 62 3 3 3 3 3 3 13 13 23 23 33 33 33 + 33 43 43 53 63 73 73 73 14 4 4 4 4 14 24 34 + 34 34 34 44 44 54 64 74 74 74 84 15 5 5 5 5 + 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 + 85 16 6 6 6 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 + 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 + 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 + 29 29 39 39 39 49 59 59 59 59 69 79 89} + +do_execsql_test 1.18.11.5 { + SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {40 90 90 90 90 40 30 80 20 90 60 70 80 90 30 + 50 10 30 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 81 91 91 21 62 12 32 22 42 2 72 + 12 22 2 72 72 12 62 52 82 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 33 3 33 83 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 + 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 85 75 15 95 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 + 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 + 58 58 38 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} + +do_execsql_test 1.18.11.6 { + SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.12.1 { + SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} + +do_execsql_test 1.18.12.2 { + SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.12.3 { + SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.12.4 { + SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.12.5 { + SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.12.6 { + SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.13.1 { + SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} + +do_execsql_test 1.18.13.2 { + SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} + +do_execsql_test 1.18.13.3 { + SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} + +do_execsql_test 1.18.13.4 { + SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.13.5 { + SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} + +do_execsql_test 1.18.13.6 { + SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.14.1 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.96.59.38.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.59.38.68.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.38.68.39.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 38.68.39.62.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 68.39.62.91.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.62.91.46.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.46.6.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.46.6.99.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.6.99.97.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 6.99.97.27.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.97.27.46.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.27.46.78.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 27.46.78.54.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.78.54.97.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.54.97.8.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 54.97.8.67.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.8.67.29.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.67.29.93.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 67.29.93.84.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.93.84.77.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.84.77.23.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.77.23.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.23.16.16.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.16.16.93.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.16.93.65.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.93.65.35.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.65.35.47.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.47.7.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.47.7.86.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.7.86.74.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.86.74.61.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 86.74.61.91.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.61.91.85.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.91.85.24.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.85.24.85.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.24.85.43.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 24.85.43.59.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.43.59.12.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.59.12.32.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.12.32.56.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.32.56.3.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 32.56.3.91.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.3.91.22.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.91.22.90.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.22.90.55.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.90.55.15.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.55.15.28.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.15.28.89.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.28.89.25.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 28.89.25.47.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.25.47.1.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 25.47.1.56.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.1.56.40.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.56.40.43.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.40.43.56.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 40.43.56.16.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.56.16.75.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.16.75.36.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.75.36.89.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.36.89.98.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.89.98.76.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.98.76.81.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.76.81.4.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 76.81.4.94.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.4.94.42.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 4.94.42.30.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 94.42.30.78.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 42.30.78.33.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.78.33.29.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.33.29.53.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.29.53.63.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.53.63.2.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 53.63.2.87.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 63.2.87.37.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.87.37.80.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.37.80.84.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.80.84.72.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.84.72.41.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.72.41.9.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.41.9.61.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.9.61.73.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.61.73.95.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.73.95.65.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.95.65.13.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.65.13.58.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.13.58.96.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.58.96.98.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.96.98.1.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.98.1.21.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.1.21.74.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.21.74.65.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 21.74.65.35.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.65.35.5.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.5.73.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.5.73.11.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 5.73.11.51.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.11.51.87.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.51.87.41.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 51.87.41.12.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.41.12.8.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.12.8.20.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.8.20.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.20.31.31.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 20.31.31.15.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.31.15.95.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.15.95.22.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.95.22.73.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.22.73.79.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.73.79.88.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.79.88.34.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 79.88.34.8.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 88.34.8.11.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.8.11.49.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.11.49.34.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.49.34.90.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 49.34.90.59.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.90.59.96.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.59.96.60.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.96.60.55.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.60.55.75.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 60.55.75.77.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.75.77.44.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.77.44.2.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.44.2.7.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 44.2.7.85.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.7.85.57.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.85.57.74.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.57.74.29.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 57.74.29.70.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.29.70.59.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.70.59.19.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 70.59.19.39.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.19.39.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 19.39.26.26.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.26.26.47.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.26.47.80.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.47.80.90.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.80.90.36.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.90.36.58.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.36.58.47.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.58.47.9.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.47.9.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.9.72.72.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.72.72.66.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.72.66.33.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.66.33.93.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 66.33.93.75.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.93.75.64.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.75.64.81.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.64.81.9.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 64.81.9.23.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.9.23.37.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.23.37.13.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.37.13.12.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.13.12.14.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.12.14.62.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.14.62.91.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 14.62.91.36.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.36.91.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.36.91.33.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.91.33.15.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.33.15.34.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.15.34.36.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.34.36.99.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.36.99.3.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.99.3.95.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.3.95.69.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.95.69.58.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.69.58.52.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 69.58.52.30.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.52.30.50.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 52.30.50.84.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.50.84.10.33.21.39.44.58.30.38.34.83.27.82.17.7 + 50.84.10.84.21.39.44.58.30.38.34.83.27.82.17.7 + 84.10.84.33.39.44.58.30.38.34.83.27.82.17.7 + 10.84.33.21.44.58.30.38.34.83.27.82.17.7 + 84.33.21.39.58.30.38.34.83.27.82.17.7 33.21.39.44.30.38.34.83.27.82.17.7 + 21.39.44.58.38.34.83.27.82.17.7 39.44.58.30.34.83.27.82.17.7 + 44.58.30.38.83.27.82.17.7 58.30.38.34.27.82.17.7 30.38.34.83.82.17.7 + 38.34.83.27.17.7 34.83.27.82.7 83.27.82.17} + +do_execsql_test 1.18.14.2 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.90.60.70.80.90.30.50.10.30 + 40.30.80.20.60.70.80.90.30.50.10.30 30.80.20.90.70.80.90.30.50.10.30 + 80.20.90.60.80.90.30.50.10.30 20.90.60.70.90.30.50.10.30 + 90.60.70.80.30.50.10.30 60.70.80.90.50.10.30 70.80.90.30.10.30 + 80.90.30.50.30 90.30.50.10 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.61.91.91.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.91.91.1.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.91.1.81.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.1.81.41.1.21.11.51.41.31.31.11.81.91.91.21 + 1.81.41.61.21.11.51.41.31.31.11.81.91.91.21 + 81.41.61.1.11.51.41.31.31.11.81.91.91.21 + 41.61.1.21.51.41.31.31.11.81.91.91.21 61.1.21.11.41.31.31.11.81.91.91.21 + 1.21.11.51.31.31.11.81.91.91.21 21.11.51.41.31.11.81.91.91.21 + 11.51.41.31.11.81.91.91.21 51.41.31.31.81.91.91.21 41.31.31.11.91.91.21 + 31.31.11.81.91.21 31.11.81.91.21 11.81.91.91 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.2.72.12.22.2.72.72.12.62.52.82 + 12.32.22.42.72.12.22.2.72.72.12.62.52.82 + 32.22.42.2.12.22.2.72.72.12.62.52.82 22.42.2.72.22.2.72.72.12.62.52.82 + 42.2.72.12.2.72.72.12.62.52.82 2.72.12.22.72.72.12.62.52.82 + 72.12.22.2.72.12.62.52.82 12.22.2.72.12.62.52.82 22.2.72.72.62.52.82 + 2.72.72.12.52.82 72.72.12.62.82 72.12.62.52 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 23.93.43.3.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.43.3.43.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.3.43.33.63.73.13.73.73.33.93.23.13.33.3.33.83 + 3.43.33.53.73.13.73.73.33.93.23.13.33.3.33.83 + 43.33.53.63.13.73.73.33.93.23.13.33.3.33.83 + 33.53.63.73.73.73.33.93.23.13.33.3.33.83 + 53.63.73.13.73.33.93.23.13.33.3.33.83 63.73.13.73.33.93.23.13.33.3.33.83 + 73.13.73.73.93.23.13.33.3.33.83 13.73.73.33.23.13.33.3.33.83 + 73.73.33.93.13.33.3.33.83 73.33.93.23.33.3.33.83 33.93.23.13.3.33.83 + 93.23.13.33.33.83 23.13.33.3.83 13.33.3.33 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.24.4.84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.24.4.94.74.34.34.44.74.64.14.34.84.84.44.34 + 24.4.94.84.34.34.44.74.64.14.34.84.84.44.34 + 4.94.84.74.34.44.74.64.14.34.84.84.44.34 + 94.84.74.34.44.74.64.14.34.84.84.44.34 + 84.74.34.34.74.64.14.34.84.84.44.34 74.34.34.44.64.14.34.84.84.44.34 + 34.34.44.74.14.34.84.84.44.34 34.44.74.64.34.84.84.44.34 + 44.74.64.14.84.84.44.34 74.64.14.34.84.44.34 64.14.34.84.44.34 + 14.34.84.84.34 34.84.84.44 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 35.85.85.55.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.85.55.15.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.55.15.25.95.65.65.35.5.15.95.55.75.85.75.15.95 + 55.15.25.75.65.65.35.5.15.95.55.75.85.75.15.95 + 15.25.75.95.65.35.5.15.95.55.75.85.75.15.95 + 25.75.95.65.35.5.15.95.55.75.85.75.15.95 + 75.95.65.65.5.15.95.55.75.85.75.15.95 95.65.65.35.15.95.55.75.85.75.15.95 + 65.65.35.5.95.55.75.85.75.15.95 65.35.5.15.55.75.85.75.15.95 + 35.5.15.95.75.85.75.15.95 5.15.95.55.85.75.15.95 15.95.55.75.75.15.95 + 95.55.75.85.15.95 55.75.85.75.95 75.85.75.15 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 6.46.16.16.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.86.56.56.16.36.76.96.96.26.26.36.66.36.36 + 86.56.56.56.36.76.96.96.26.26.36.66.36.36 + 56.56.56.16.76.96.96.26.26.36.66.36.36 + 56.56.16.36.96.96.26.26.36.66.36.36 56.16.36.76.96.26.26.36.66.36.36 + 16.36.76.96.26.26.36.66.36.36 36.76.96.96.26.36.66.36.36 + 76.96.96.26.36.66.36.36 96.96.26.26.66.36.36 96.26.26.36.36.36 + 26.26.36.66.36 26.36.66.36 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 27.97.67.77.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.67.77.47.47.87.37.87.77.7.57.47.47.37.27.17.7 + 67.77.47.7.87.37.87.77.7.57.47.47.37.27.17.7 + 77.47.7.47.37.87.77.7.57.47.47.37.27.17.7 + 47.7.47.87.87.77.7.57.47.47.37.27.17.7 + 7.47.87.37.77.7.57.47.47.37.27.17.7 47.87.37.87.7.57.47.47.37.27.17.7 + 87.37.87.77.57.47.47.37.27.17.7 37.87.77.7.47.47.37.27.17.7 + 87.77.7.57.47.37.27.17.7 77.7.57.47.37.27.17.7 7.57.47.47.27.17.7 + 57.47.47.37.17.7 47.47.37.27.7 47.37.27.17 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.98.78.58.98.8.88.8.58.58.58.38 + 68.78.8.28.78.58.98.8.88.8.58.58.58.38 + 78.8.28.98.58.98.8.88.8.58.58.58.38 8.28.98.78.98.8.88.8.58.58.58.38 + 28.98.78.58.8.88.8.58.58.58.38 98.78.58.98.88.8.58.58.58.38 + 78.58.98.8.8.58.58.58.38 58.98.8.88.58.58.58.38 98.8.88.8.58.58.38 + 8.88.8.58.58.38 88.8.58.58.38 8.58.58.58 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.29.59.19.39.9.9.99.69.39 9.79.49.59.59.19.39.9.9.99.69.39 + 79.49.59.29.19.39.9.9.99.69.39 49.59.29.59.39.9.9.99.69.39 + 59.29.59.19.9.9.99.69.39 29.59.19.39.9.99.69.39 59.19.39.9.99.69.39 + 19.39.9.9.69.39 39.9.9.99.39 9.9.99.69} + +do_execsql_test 1.18.14.3 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.2.3.3.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.3.3.4.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.3.4.5.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.4.5.6.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 4.5.6.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 5.6.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 6.7.7.7.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.7.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.8.8.8.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.8.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.9.9.9.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.9.10.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.10.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.10.11.11.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 10.11.11.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.11.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.12.12.12.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.12.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.13.13.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.13.13.14.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.13.14.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.14.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 14.15.15.15.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.15.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.16.16.16.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.16.17.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.17.19.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.17.19.20.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 17.19.20.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 19.20.21.21.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 20.21.21.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.21.22.22.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.22.22.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.22.23.23.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.23.23.24.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.23.24.25.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.24.25.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 24.25.26.26.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 25.26.26.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.26.27.27.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.27.27.28.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.27.28.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.28.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 28.29.29.29.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.29.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.30.30.30.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.30.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.31.31.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.31.31.32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.31.32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.34.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.35.35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.35.35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.36.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.37.37.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.37.37.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.37.38.38.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.38.38.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.38.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.39.39.39.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.39.40.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.40.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.40.41.41.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 40.41.41.42.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.41.42.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.42.43.43.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 42.43.43.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.43.44.44.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.44.44.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.44.46.46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.46.46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.47.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.49.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.49.50.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.49.50.51.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 49.50.51.52.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 50.51.52.53.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 51.52.53.54.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 52.53.54.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 53.54.55.55.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 54.55.55.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.55.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.56.56.56.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.56.57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.59.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.60.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.60.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.60.61.61.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 60.61.61.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.61.62.62.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.62.62.63.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.62.63.64.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.63.64.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 63.64.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 64.65.65.65.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.65.66.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.66.67.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.66.67.68.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 66.67.68.69.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 67.68.69.70.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 68.69.70.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 69.70.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 70.72.72.72.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.72.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.73.73.73.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.73.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.74.74.74.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.74.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.75.75.75.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.75.76.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.76.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.76.77.77.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 76.77.77.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.77.78.78.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.78.78.79.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.78.79.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.79.80.80.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 79.80.80.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.80.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.81.81.81.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.81.82.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.82.83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.82.83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 82.83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.84.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.85.85.85.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.85.86.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.86.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.86.87.87.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 86.87.87.88.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.87.88.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.88.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 88.89.89.89.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.89.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.90.90.90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.93.93.93.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.93.94.95.95.96.96.96.97.97.98.98.99.99 + 93.93.94.95.95.96.96.96.97.97.98.98.99.99 + 93.94.95.95.96.96.96.97.97.98.98.99.99 + 94.95.95.95.96.96.97.97.98.98.99.99 95.95.95.96.96.97.97.98.98.99.99 + 95.95.96.96.97.97.98.98.99.99 95.96.96.96.97.98.98.99.99 + 96.96.96.97.98.98.99.99 96.96.97.97.98.99.99 96.97.97.98.99.99 + 97.97.98.98.99 97.98.98.99} + +do_execsql_test 1.18.14.4 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.40.50.60.70.80.80.90.90.90 + 20.30.30.30.50.60.70.80.80.90.90.90 30.30.30.40.60.70.80.80.90.90.90 + 30.30.40.50.70.80.80.90.90.90 30.40.50.60.80.80.90.90.90 + 40.50.60.70.80.90.90.90 50.60.70.80.90.90.90 60.70.80.80.90.90 + 70.80.80.90.90 80.80.90.90 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.11.21.21.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.21.21.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.21.31.31.41.51.61.61.81.81.81.91.91.91.91.91 + 21.31.31.41.51.61.61.81.81.81.91.91.91.91.91 + 31.31.41.41.61.61.81.81.81.91.91.91.91.91 + 31.41.41.51.61.81.81.81.91.91.91.91.91 + 41.41.51.61.81.81.81.91.91.91.91.91 41.51.61.61.81.81.91.91.91.91.91 + 51.61.61.81.81.91.91.91.91.91 61.61.81.81.91.91.91.91.91 + 61.81.81.81.91.91.91.91 81.81.81.91.91.91.91 81.81.91.91.91.91 + 81.91.91.91.91 91.91.91.91 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.32.42.52.62.62.72.72.72.82 + 12.12.12.22.32.42.52.62.62.72.72.72.82 + 12.12.22.22.42.52.62.62.72.72.72.82 12.22.22.32.52.62.62.72.72.72.82 + 22.22.32.42.62.62.72.72.72.82 22.32.42.52.62.72.72.72.82 + 32.42.52.62.72.72.72.82 42.52.62.62.72.72.82 52.62.62.72.72.82 + 62.62.72.72.82 62.72.72.72 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.13.23.23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.23.23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.33.43.53.63.73.73.73.83.93.93.93 + 33.33.33.43.53.63.73.73.73.83.93.93.93 + 33.33.43.43.63.73.73.73.83.93.93.93 33.43.43.53.73.73.73.83.93.93.93 + 43.43.53.63.73.73.83.93.93.93 43.53.63.73.73.83.93.93.93 + 53.63.73.73.83.93.93.93 63.73.73.73.93.93.93 73.73.73.83.93.93 + 73.73.83.93.93 73.83.93.93 + 14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 14.24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.34.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.44.54.64.74.74.74.84.84.84.84.94 + 34.34.44.44.64.74.74.74.84.84.84.84.94 + 34.44.44.54.74.74.74.84.84.84.84.94 44.44.54.64.74.74.84.84.84.84.94 + 44.54.64.74.74.84.84.84.84.94 54.64.74.74.84.84.84.84.94 + 64.74.74.74.84.84.84.94 74.74.74.84.84.84.94 74.74.84.84.84.94 + 74.84.84.84.94 84.84.84.84 + 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.15.25.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.25.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.25.35.35.55.65.65.65.75.75.75.85.85.85.95.95.95 + 25.35.35.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.35.55.55.65.65.75.75.75.85.85.85.95.95.95 + 35.55.55.65.65.75.75.75.85.85.85.95.95.95 + 55.55.65.65.75.75.75.85.85.85.95.95.95 + 55.65.65.65.75.75.85.85.85.95.95.95 65.65.65.75.75.85.85.85.95.95.95 + 65.65.75.75.85.85.85.95.95.95 65.75.75.75.85.85.95.95.95 + 75.75.75.85.85.95.95.95 75.75.85.85.95.95.95 75.85.85.85.95.95 + 85.85.85.95.95 85.85.95.95 + 16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.16.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.26.26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.26.26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.36.46.56.56.56.66.76.86.96.96.96 + 36.36.36.46.56.56.56.66.76.86.96.96.96 + 36.36.46.46.56.56.66.76.86.96.96.96 36.46.46.56.56.66.76.86.96.96.96 + 46.46.56.56.66.76.86.96.96.96 46.56.56.56.76.86.96.96.96 + 56.56.56.66.86.96.96.96 56.56.66.76.96.96.96 56.66.76.86.96.96 + 66.76.86.96.96 76.86.96.96 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.17.27.27.37.47.47.47.47.57.67.77.77.87.87.97.97 + 17.27.27.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.27.37.37.47.47.47.57.67.77.77.87.87.97.97 + 27.37.37.47.47.47.57.67.77.77.87.87.97.97 + 37.37.47.47.47.57.67.77.77.87.87.97.97 + 37.47.47.47.57.67.77.77.87.87.97.97 47.47.47.47.67.77.77.87.87.97.97 + 47.47.47.57.77.77.87.87.97.97 47.47.57.67.77.87.87.97.97 + 47.57.67.77.87.87.97.97 57.67.77.77.87.97.97 67.77.77.87.97.97 + 77.77.87.87.97 77.87.87.97 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.58.58.58.58.68.78.78.88.98.98 + 8.28.38.38.58.58.58.68.78.78.88.98.98 28.38.38.58.58.58.68.78.78.88.98.98 + 38.38.58.58.58.68.78.78.88.98.98 38.58.58.58.68.78.78.88.98.98 + 58.58.58.58.78.78.88.98.98 58.58.58.68.78.88.98.98 58.58.68.78.88.98.98 + 58.68.78.78.98.98 68.78.78.88.98 78.78.88.98 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.19.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 19.29.29.29.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.29.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.39.39.39.59.59.59.59.69.79.89.89.89.99.99 + 39.39.39.49.59.59.59.69.79.89.89.89.99.99 + 39.39.49.59.59.59.69.79.89.89.89.99.99 + 39.49.59.59.59.69.79.89.89.89.99.99 49.59.59.59.69.79.89.89.89.99.99 + 59.59.59.59.79.89.89.89.99.99 59.59.59.69.89.89.89.99.99 + 59.59.69.79.89.89.99.99 59.69.79.89.89.99.99 69.79.89.89.99.99 + 79.89.89.89.99 89.89.89.99} + +do_execsql_test 1.18.14.5 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) FROM t2 +} {40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 40.30.80.20.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.80.20.90.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.20.90.60.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 20.90.60.70.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.60.70.80.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 60.70.80.90.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 70.80.90.30.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.90.30.50.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.50.10.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.50.10.30.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 50.10.30.81.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 10.30.81.91.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.61.91.91.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.91.91.1.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.1.81.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.1.81.41.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.81.41.61.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.41.61.1.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.61.1.21.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.1.21.11.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.21.11.51.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.11.51.41.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.51.41.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 51.41.31.31.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.31.31.11.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.31.11.81.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.11.81.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.81.91.91.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.91.21.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.21.62.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.21.62.12.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.62.12.32.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.12.32.22.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.32.22.42.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 32.22.42.2.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.42.2.72.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 42.2.72.12.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.12.22.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.22.2.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.22.2.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.2.72.72.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.72.12.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.72.12.62.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.62.52.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.62.52.82.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.52.82.93.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 52.82.93.23.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 82.93.23.93.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.93.43.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.93.43.3.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.43.3.43.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.3.43.33.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.43.33.53.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.33.53.63.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.53.63.73.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 53.63.73.13.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 63.73.13.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.13.73.73.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.73.73.33.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.73.33.93.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.33.93.23.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.93.23.13.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.13.33.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.13.33.3.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.33.3.33.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.3.33.83.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.33.83.54.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.83.54.84.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 83.54.84.74.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 54.84.74.24.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.24.4.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.24.4.94.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 24.4.94.84.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 4.94.84.74.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 94.84.74.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.34.34.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.34.34.44.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.34.44.74.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.44.74.64.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.74.64.14.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.64.14.34.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 64.14.34.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 14.34.84.84.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.84.84.44.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.84.44.34.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.44.34.65.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.34.65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.85.85.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.85.85.55.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.85.55.15.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.55.15.25.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.15.25.75.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.25.75.95.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 25.75.95.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.95.65.65.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.65.65.35.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.65.35.5.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.5.15.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.5.15.95.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 5.15.95.55.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.55.75.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.55.75.85.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.75.85.75.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.85.75.15.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.75.15.95.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.15.95.96.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.96.46.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.96.46.6.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 6.46.16.16.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.86.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 86.56.56.56.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.56.16.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.16.36.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.16.36.76.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.36.76.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.76.96.96.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 76.96.96.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.96.26.26.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.26.26.36.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.26.36.66.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.36.66.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.66.36.36.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 66.36.36.97.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.36.97.27.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.97.27.97.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.27.97.67.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.97.67.77.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.67.77.47.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 67.77.47.7.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.47.7.47.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.7.47.87.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.47.87.37.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.87.37.87.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.37.87.77.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.87.77.7.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.77.7.57.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.7.57.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.57.47.47.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 57.47.47.37.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.47.37.27.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.37.27.17.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.27.17.7.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.17.7.38.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 17.7.38.68.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.38.68.78.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.68.78.8.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 68.78.8.28.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.8.28.98.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.28.98.78.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 28.98.78.58.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.78.58.98.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.58.98.8.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.98.8.88.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.8.88.8.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.88.8.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 88.8.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.58.58.58.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.58.38.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.38.89.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.38.89.59.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.89.59.39.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.29.59.19.39.9.9.99.69.39 9.79.49.59.59.19.39.9.9.99.69.39 + 79.49.59.29.19.39.9.9.99.69.39 49.59.29.59.39.9.9.99.69.39 + 59.29.59.19.9.9.99.69.39 29.59.19.39.9.99.69.39 59.19.39.9.99.69.39 + 19.39.9.9.69.39 39.9.9.99.39 9.9.99.69} + +do_execsql_test 1.18.14.6 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.18.15.1 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE a%2=0) OVER win FROM t2 + WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) +} {190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.96.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 189 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 188 96.38.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 187 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 186 38.39.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 185 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 184 39.91.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 183 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 182 91.6.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 181 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 180 6.97.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 179 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 178 97.46.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 177 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 176 46.54.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 175 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 174 54.8.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 173 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 172 8.29.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 171 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 170 29.84.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 169 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 168 84.23.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 167 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 166 23.16.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 165 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 164 16.65.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 163 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 162 65.47.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 161 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 160 47.86.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 159 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 158 86.61.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 157 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 156 61.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 155 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 154 85.85.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 153 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 152 85.59.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 151 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 150 59.32.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 149 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 148 32.3.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 147 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 146 3.22.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 145 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 144 22.55.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 143 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 142 55.28.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 141 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 140 28.25.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 139 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 138 25.1.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 137 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 136 1.40.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 135 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 134 40.56.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 133 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 132 56.75.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 131 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 130 75.89.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 129 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 128 89.76.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 127 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 126 76.4.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 125 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 124 4.42.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 123 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 122 42.78.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 121 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 120 78.29.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 119 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 118 29.63.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 117 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 116 63.87.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 115 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 114 87.80.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 113 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 112 80.72.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 111 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 110 72.9.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 109 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 108 9.73.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 107 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 106 73.65.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 105 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 104 65.58.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 103 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 102 58.98.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 101 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 100 98.21.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 99 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 98 21.65.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 97 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 96 65.5.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 95 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 94 5.11.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 93 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 92 11.87.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 91 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 90 87.12.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 89 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 88 12.20.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 87 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 86 20.31.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 85 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 84 31.95.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 83 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 82 95.73.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 81 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 80 73.88.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 79 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 78 88.8.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 77 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 76 8.49.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 75 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 74 49.90.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 73 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 72 90.96.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 71 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 70 96.55.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 69 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 68 55.77.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 67 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 66 77.2.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 65 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 64 2.85.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 63 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 62 85.74.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 61 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 60 74.70.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 59 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 58 70.19.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 57 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 56 19.26.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 55 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 54 26.47.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 53 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 52 47.90.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 51 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 50 90.58.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 49 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 48 58.9.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 47 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 46 9.72.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 45 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 44 72.33.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 43 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 42 33.75.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 41 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 40 75.81.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 39 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 38 81.23.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 37 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 36 23.13.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 35 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 34 13.14.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 33 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 32 14.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 31 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 30 91.91.36.3.69.52.50.10.33.39.58.38.83.82.7 + 29 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 28 91.15.3.69.52.50.10.33.39.58.38.83.82.7 + 27 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 26 15.36.69.52.50.10.33.39.58.38.83.82.7 + 25 36.3.69.52.50.10.33.39.58.38.83.82.7 + 24 36.3.52.50.10.33.39.58.38.83.82.7 23 3.69.52.50.10.33.39.58.38.83.82.7 + 22 3.69.50.10.33.39.58.38.83.82.7 21 69.52.50.10.33.39.58.38.83.82.7 + 20 69.52.10.33.39.58.38.83.82.7 19 52.50.10.33.39.58.38.83.82.7 + 18 52.50.33.39.58.38.83.82.7 17 50.10.33.39.58.38.83.82.7 + 16 50.10.39.58.38.83.82.7 15 10.33.39.58.38.83.82.7 + 14 10.33.58.38.83.82.7 13 33.39.58.38.83.82.7 12 33.39.38.83.82.7 + 11 39.58.38.83.82.7 10 39.58.83.82.7 9 58.38.83.82.7 8 58.38.82.7 + 7 38.83.82.7 6 38.83.7 5 83.82.7 4 83.82} + +do_execsql_test 1.18.15.2 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE 0=1) OVER win FROM t2 + WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) +} {190 {} 190 {} 190 {} 190 {} 190 {} 189 {} 188 {} 187 {} + 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} 179 {} + 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} 171 {} + 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} 163 {} + 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} 155 {} + 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} 147 {} + 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} 139 {} + 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} 131 {} + 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} 123 {} + 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} 115 {} + 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} 107 {} + 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} 99 {} + 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} 90 {} + 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} 81 {} + 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} 72 {} + 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} 63 {} + 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} 54 {} + 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} 45 {} + 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} 36 {} + 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} 27 {} + 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {}} + +do_execsql_test 1.18.15.3 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE 1=0) OVER win FROM t2 + WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) +} {19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {}} + +do_execsql_test 1.18.15.4 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE a%2=0) OVER win FROM t2 + WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) +} {19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.6.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.6.29.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.6.29.47.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 18 6.29.47.59.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 17 29.47.59.28.78.72.98.87.73.96.74.90.75.91.69.39.7 + 16 47.59.28.75.72.98.87.73.96.74.90.75.91.69.39.7 + 15 59.28.75.78.98.87.73.96.74.90.75.91.69.39.7 + 14 28.75.78.72.87.73.96.74.90.75.91.69.39.7 + 13 75.78.72.98.73.96.74.90.75.91.69.39.7 + 12 78.72.98.87.96.74.90.75.91.69.39.7 11 72.98.87.73.74.90.75.91.69.39.7 + 10 98.87.73.96.90.75.91.69.39.7 9 87.73.96.74.75.91.69.39.7 + 8 73.96.74.90.91.69.39.7 7 96.74.90.75.69.39.7 6 74.90.75.91.39.7 + 5 90.75.91.69.7 4 75.91.69.39 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.97.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.97.84.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.97.84.86.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 17 97.84.86.32.89.29.9.21.12.88.55.70.58.81.91.52.58 + 16 84.86.32.25.29.9.21.12.88.55.70.58.81.91.52.58 + 15 86.32.25.89.9.21.12.88.55.70.58.81.91.52.58 + 14 32.25.89.29.21.12.88.55.70.58.81.91.52.58 + 13 25.89.29.9.12.88.55.70.58.81.91.52.58 + 12 89.29.9.21.88.55.70.58.81.91.52.58 11 29.9.21.12.55.70.58.81.91.52.58 + 10 9.21.12.88.70.58.81.91.52.58 9 21.12.88.55.58.81.91.52.58 + 8 12.88.55.70.81.91.52.58 7 88.55.70.58.91.52.58 6 55.70.58.81.52.58 + 5 70.58.81.91.58 4 58.81.91.52 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.46.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.46.23.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.46.23.61.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 17 46.23.61.3.76.63.73.65.20.8.77.19.9.23.15.50.38 + 16 23.61.3.1.63.73.65.20.8.77.19.9.23.15.50.38 + 15 61.3.1.76.73.65.20.8.77.19.9.23.15.50.38 + 14 3.1.76.63.65.20.8.77.19.9.23.15.50.38 + 13 1.76.63.73.20.8.77.19.9.23.15.50.38 + 12 76.63.73.65.8.77.19.9.23.15.50.38 11 63.73.65.20.77.19.9.23.15.50.38 + 10 73.65.20.8.19.9.23.15.50.38 9 65.20.8.77.9.23.15.50.38 + 8 20.8.77.19.23.15.50.38 7 8.77.19.9.15.50.38 6 77.19.9.23.50.38 + 5 19.9.23.15.38 4 9.23.15.50 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.54.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.54.16.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.54.16.85.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 17 54.16.85.22.4.87.65.5.31.49.2.26.72.13.36.10.83 + 16 16.85.22.40.87.65.5.31.49.2.26.72.13.36.10.83 + 15 85.22.40.4.65.5.31.49.2.26.72.13.36.10.83 + 14 22.40.4.87.5.31.49.2.26.72.13.36.10.83 + 13 40.4.87.65.31.49.2.26.72.13.36.10.83 + 12 4.87.65.5.49.2.26.72.13.36.10.83 11 87.65.5.31.2.26.72.13.36.10.83 + 10 65.5.31.49.26.72.13.36.10.83 9 5.31.49.2.72.13.36.10.83 + 8 31.49.2.26.13.36.10.83 7 49.2.26.72.36.10.83 6 2.26.72.13.10.83 + 5 26.72.13.36.83 4 72.13.36.10 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.8.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.8.65.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.8.65.85.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 17 8.65.85.55.42.80.58.11.95.90.85.47.33.14.3.33.82 + 16 65.85.55.56.80.58.11.95.90.85.47.33.14.3.33.82 + 15 85.55.56.42.58.11.95.90.85.47.33.14.3.33.82 + 14 55.56.42.80.11.95.90.85.47.33.14.3.33.82 + 13 56.42.80.58.95.90.85.47.33.14.3.33.82 + 12 42.80.58.11.90.85.47.33.14.3.33.82 11 80.58.11.95.85.47.33.14.3.33.82 + 10 58.11.95.90.47.33.14.3.33.82 9 11.95.90.85.33.14.3.33.82 + 8 95.90.85.47.14.3.33.82 7 90.85.47.33.3.33.82 6 85.47.33.14.33.82 + 5 47.33.14.3.82 4 33.14.3.33 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {}} + +do_execsql_test 1.19.2.1 { + SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 + 84 84 83 83 83 83 83 83 83 83 83} + +do_execsql_test 1.19.2.2 { + SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 7} + +do_execsql_test 1.19.3.1 { + SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.19.3.2 { + SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.19.3.3 { + SELECT row_number() OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.19.4.1 { + SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.19.4.2 { + SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.19.4.3 { + SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} + +do_execsql_test 1.19.4.4 { + SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} + +do_execsql_test 1.19.4.5 { + SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} + +do_execsql_test 1.19.4.6 { + SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} + +do_execsql_test 1.19.5.1 { + SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.19.5.2 { + SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.19.5.3 { + SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} + +do_execsql_test 1.19.5.4 { + SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} + +do_execsql_test 1.19.5.5 { + SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} + +do_execsql_test 1.19.5.6 { + SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} + +do_execsql_test 1.19.6.1 { + SELECT + row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ), + rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ), + dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + FROM t2 +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} + + +do_test 1.19.7.1 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.7.2 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.7.3 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.7.4 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.7.5 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.7.6 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.1 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.2 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.3 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.4 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.5 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.6 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.1 { + set myres {} + foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.2 { + set myres {} + foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.3 { + set myres {} + foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.4 { + set myres {} + foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.5 { + set myres {} + foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.6 { + set myres {} + foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.19.8.7 { + set myres {} + foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + +do_execsql_test 1.19.9.1 { + SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207} + +do_execsql_test 1.19.9.2 { + SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 223 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 210 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 279 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 212 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 232 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} + +do_execsql_test 1.19.9.3 { + SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} + +do_execsql_test 1.19.9.4 { + SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 240 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 280 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 252 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 171 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 274 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 226 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 124 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 198 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276} + +do_execsql_test 1.19.9.5 { + SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229} + +do_execsql_test 1.19.9.6 { + SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {108 52 83 79 65 26 70 103 80 36 116 51 52 128 + 117 71 63 84 109 78 147 88 121 106 124 85 107 171 + 150 80 171 120 109 158 87 168 173 162 156 195 198 + 177 124 121 134 141 210 157 132 161 218 226 191 179 + 138 214 212 172 173 229 240 187 210 227 228 223 225 + 179 182 231 207 209 212 239 234 213 234 269 196 271 + 235 250 223 232 229 280 99 92 72 55 109 120 119 + 50 124 96 59 124 110 57 130 103 74 87 48 105 136 + 131 133 92 109 57 146 113 74 150 87 110 65 110 + 145 161 156 114 111 136 147 173 124 132 101 154 167 + 190 161 110 102 123 169 140 111 180 119 160 197 152 + 146 147 132 213 193 200 136 175 188 187 208 211 144 + 223 196 170 202 163 184 195 200 163 191 252 235 243 + 172 187 202 179 261 263 206 189 276 181 274 249 221 + 210 229 279 224 216 207} + +do_execsql_test 1.19.10.1 { + SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {96 41 5 16 85 30 12 81 35 89 97 31 31 85 40 + 96 4 73 84 9 91 73 12 5 56 24 85 49 96 75 53 + 61 8 8 1 55 34 43 59 80 35 15 78 35 56 70 76 + 59 51 75 63 26 53 5 89 15 21 5 73 33 29 74 66 + 12 26 58 4 12 31 35 9 87 73 55 59 53 62 73 23 + 62 33 90 13 90 9 10 66 5 58 44 38 58 22 33 37 + 2 73 36 31 72 30 47 73 15 96 70 59 90 {} 7 21 + 83 {} 47 90 55 36 66 {} 50 {} 84 30 {} {} 34 + 77 74 {} 58 {} 13 {} 82 93 69 14 62 44 {} {} + 30 {} 83 93 {} {} {} 84 {} {} {} {} 14 30 82 + 34 34 3 {} {} {} {} {} 84 {} {} {} 99 {} {} + {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} + {} {} {} {} {}} + +do_execsql_test 1.19.10.2 { + SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} 91 {} {} {} {} + {} {} {} {} {} {} 12 {} {} {} 22 {} 82 {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} 33 {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 75 {} {} {} {} {} {} 15 {} + {} {} {} {} {} {} {} {} {} 86 {} 26 36 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 37 {} {} {} {} {} 47 {} {} {} {} + {} {} {} {} {} {} 98 {} {} {} {} {} 58 {} 38 + {} {} {} {} {} {} {} {} {} {} {} {} {} 59 {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.10.3 { + SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 2 2 2 3 4 6 7 8 8 8 9 9 10 11 12 12 + 13 14 15 15 16 16 17 19 21 22 22 23 24 25 26 + 27 29 29 30 30 31 32 33 33 34 34 35 35 36 36 + 37 38 38 39 39 40 41 42 43 44 46 46 47 47 47 + 49 50 51 53 54 55 56 56 56 58 58 58 59 59 59 + 60 61 62 63 65 65 66 68 69 72 72 73 73 74 74 + 75 76 77 78 80 81 81 82 84 84 84 85 85 86 87 + 87 89 89 89 90 90 91 91 91 93 93 95 95 96 96 + 97 98 99 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.10.4 { + SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 + 61 61 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 12 12 72 72 72 {} {} {} {} {} {} + {} {} {} {} {} 13 13 63 63 {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} 34 84 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 35 85 85 85 {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 36 76 76 76 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 + 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} + {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.10.5 { + SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {34 2 11 34 81 65 73 84 64 55 12 33 91 42 65 + 35 84 15 95 61 25 53 74 81 72 91 84 33 3 43 + 32 85 56 56 93 85 2 93 43 94 22 75 82 13 12 + 46 6 3 55 25 26 47 83 37 85 43 55 34 75 86 36 + 33 36 36 85 68 14 4 25 33 95 27 16 38 77 55 4 + 58 98 37 15 95 16 38 77 55 16 58 38 36 56 7 + 36 59 89 57 75 86 89 39 98 8 97 15 46 {} 28 9 + 69 49 56 {} {} 78 16 28 26 36 {} 39 99 29 27 + 78 {} {} {} 37 27 98 {} 88 8 {} 28 {} {} {} + 59 37 59 {} 89 {} {} 47 {} 39 {} 29 29 8 78 9 + {} {} 58 59 {} {} {} {} 58 {} 38 {} {} {} {} + {} {} {} {} {} {} {} {} {} 59 {} {} {} {} {} + {} {} {} {} {} {} {}} + +do_execsql_test 1.19.10.6 { + SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.11.1 { + SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {89 89 89 89 89 81 96 59 38 68 39 62 91 46 6 + 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 + 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 + 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 + 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 + 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 + 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 + 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 + 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 + 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 + 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 + 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 + 39 44 58 30 38 34 83} + +do_execsql_test 1.19.11.2 { + SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 81 + 81 81 81 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 62 62 62 62 62 12 32 22 42 2 72 + 12 22 2 72 72 93 93 93 93 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 54 54 54 54 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 65 + 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 96 96 96 96 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 97 97 97 97 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 38 + 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 89 + 89 89 89 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} + +do_execsql_test 1.19.11.3 { + SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 1 1 1 1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 + 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 + 16 16 17 19 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 + 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 + 39 39 39 40 41 41 42 43 43 44 44 46 46 47 47 + 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 + 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 + 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 + 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 + 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 + 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 + 95 96 96 96 97 97} + +do_execsql_test 1.19.11.4 { + SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {10 10 10 10 10 20 30 30 30 40 50 60 70 80 1 1 + 1 1 1 1 11 11 21 21 31 31 41 41 51 61 61 81 + 81 81 91 2 2 2 2 2 2 12 12 12 22 22 32 42 + 52 62 62 3 3 3 3 3 3 13 13 23 23 33 33 33 + 33 43 43 53 63 73 73 73 4 4 4 4 4 14 24 34 + 34 34 34 44 44 54 64 74 74 74 84 5 5 5 5 5 + 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 + 85 6 6 6 6 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 + 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 + 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 + 29 29 39 39 39 49 59 59 59 59 69 79 89} + +do_execsql_test 1.19.11.5 { + SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {90 90 90 90 90 40 30 80 20 90 60 70 80 90 30 + 50 10 30 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 81 91 91 21 62 12 32 22 42 2 72 + 12 22 2 72 72 12 62 52 82 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 33 3 33 83 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 + 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 85 75 15 95 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 + 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 + 58 58 38 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} + +do_execsql_test 1.19.11.6 { + SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.19.12.1 { + SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} + +do_execsql_test 1.19.12.2 { + SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.12.3 { + SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.12.4 { + SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.12.5 { + SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.12.6 { + SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.13.1 { + SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} + +do_execsql_test 1.19.13.2 { + SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} + +do_execsql_test 1.19.13.3 { + SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} + +do_execsql_test 1.19.13.4 { + SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.13.5 { + SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} + +do_execsql_test 1.19.13.6 { + SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.19.14.1 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.21.39.44.58.30.38.34.83.27.82.17.7 21.39.44.58.30.38.34.83.27.82.17.7 + 39.44.58.30.38.34.83.27.82.17.7 44.58.30.38.34.83.27.82.17.7 + 58.30.38.34.83.27.82.17.7 30.38.34.83.27.82.17.7 38.34.83.27.82.17.7 + 34.83.27.82.17.7 83.27.82.17.7} + +do_execsql_test 1.19.14.2 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30 + 40.30.80.20.90.60.70.80.90.30.50.10.30 + 30.80.20.90.60.70.80.90.30.50.10.30 80.20.90.60.70.80.90.30.50.10.30 + 20.90.60.70.80.90.30.50.10.30 90.60.70.80.90.30.50.10.30 + 60.70.80.90.30.50.10.30 70.80.90.30.50.10.30 80.90.30.50.10.30 + 90.30.50.10.30 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.1.21.11.51.41.31.31.11.81.91.91.21 1.21.11.51.41.31.31.11.81.91.91.21 + 21.11.51.41.31.31.11.81.91.91.21 11.51.41.31.31.11.81.91.91.21 + 51.41.31.31.11.81.91.91.21 41.31.31.11.81.91.91.21 31.31.11.81.91.91.21 + 31.11.81.91.91.21 11.81.91.91.21 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 22.42.2.72.12.22.2.72.72.12.62.52.82 42.2.72.12.22.2.72.72.12.62.52.82 + 2.72.12.22.2.72.72.12.62.52.82 72.12.22.2.72.72.12.62.52.82 + 12.22.2.72.72.12.62.52.82 22.2.72.72.12.62.52.82 2.72.72.12.62.52.82 + 72.72.12.62.52.82 72.12.62.52.82 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 63.73.13.73.73.33.93.23.13.33.3.33.83 73.13.73.73.33.93.23.13.33.3.33.83 + 13.73.73.33.93.23.13.33.3.33.83 73.73.33.93.23.13.33.3.33.83 + 73.33.93.23.13.33.3.33.83 33.93.23.13.33.3.33.83 93.23.13.33.3.33.83 + 23.13.33.3.33.83 13.33.3.33.83 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.34.34.44.74.64.14.34.84.84.44.34 34.34.44.74.64.14.34.84.84.44.34 + 34.44.74.64.14.34.84.84.44.34 44.74.64.14.34.84.84.44.34 + 74.64.14.34.84.84.44.34 64.14.34.84.84.44.34 14.34.84.84.44.34 + 34.84.84.44.34 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 95.65.65.35.5.15.95.55.75.85.75.15.95 65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.5.15.95.55.75.85.75.15.95 35.5.15.95.55.75.85.75.15.95 + 5.15.95.55.75.85.75.15.95 15.95.55.75.85.75.15.95 95.55.75.85.75.15.95 + 55.75.85.75.15.95 75.85.75.15.95 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.56.16.36.76.96.96.26.26.36.66.36.36 + 56.16.36.76.96.96.26.26.36.66.36.36 16.36.76.96.96.26.26.36.66.36.36 + 36.76.96.96.26.26.36.66.36.36 76.96.96.26.26.36.66.36.36 + 96.96.26.26.36.66.36.36 96.26.26.36.66.36.36 26.26.36.66.36.36 + 26.36.66.36.36 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 47.87.37.87.77.7.57.47.47.37.27.17.7 87.37.87.77.7.57.47.47.37.27.17.7 + 37.87.77.7.57.47.47.37.27.17.7 87.77.7.57.47.47.37.27.17.7 + 77.7.57.47.47.37.27.17.7 7.57.47.47.37.27.17.7 57.47.47.37.27.17.7 + 47.47.37.27.17.7 47.37.27.17.7 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 8.28.98.78.58.98.8.88.8.58.58.58.38 28.98.78.58.98.8.88.8.58.58.58.38 + 98.78.58.98.8.88.8.58.58.58.38 78.58.98.8.88.8.58.58.58.38 + 58.98.8.88.8.58.58.58.38 98.8.88.8.58.58.58.38 8.88.8.58.58.58.38 + 88.8.58.58.58.38 8.58.58.58.38 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39} + +do_execsql_test 1.19.14.3 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 94.95.95.95.96.96.96.97.97.98.98.99.99 + 95.95.95.96.96.96.97.97.98.98.99.99 95.95.96.96.96.97.97.98.98.99.99 + 95.96.96.96.97.97.98.98.99.99 96.96.96.97.97.98.98.99.99 + 96.96.97.97.98.98.99.99 96.97.97.98.98.99.99 97.97.98.98.99.99 + 97.98.98.99.99} + +do_execsql_test 1.19.14.4 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.30.40.50.60.70.80.80.90.90.90 + 20.30.30.30.40.50.60.70.80.80.90.90.90 + 30.30.30.40.50.60.70.80.80.90.90.90 30.30.40.50.60.70.80.80.90.90.90 + 30.40.50.60.70.80.80.90.90.90 40.50.60.70.80.80.90.90.90 + 50.60.70.80.80.90.90.90 60.70.80.80.90.90.90 70.80.80.90.90.90 + 80.80.90.90.90 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.41.51.61.61.81.81.81.91.91.91.91.91 + 41.51.61.61.81.81.81.91.91.91.91.91 51.61.61.81.81.81.91.91.91.91.91 + 61.61.81.81.81.91.91.91.91.91 61.81.81.81.91.91.91.91.91 + 81.81.81.91.91.91.91.91 81.81.91.91.91.91.91 81.91.91.91.91.91 + 91.91.91.91.91 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.12.22.22.32.42.52.62.62.72.72.72.82 + 12.22.22.32.42.52.62.62.72.72.72.82 22.22.32.42.52.62.62.72.72.72.82 + 22.32.42.52.62.62.72.72.72.82 32.42.52.62.62.72.72.72.82 + 42.52.62.62.72.72.72.82 52.62.62.72.72.72.82 62.62.72.72.72.82 + 62.72.72.72.82 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.43.43.53.63.73.73.73.83.93.93.93 43.43.53.63.73.73.73.83.93.93.93 + 43.53.63.73.73.73.83.93.93.93 53.63.73.73.73.83.93.93.93 + 63.73.73.73.83.93.93.93 73.73.73.83.93.93.93 73.73.83.93.93.93 + 73.83.93.93.93 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.44.44.54.64.74.74.74.84.84.84.84.94 + 44.44.54.64.74.74.74.84.84.84.84.94 44.54.64.74.74.74.84.84.84.84.94 + 54.64.74.74.74.84.84.84.84.94 64.74.74.74.84.84.84.84.94 + 74.74.74.84.84.84.84.94 74.74.84.84.84.84.94 74.84.84.84.84.94 + 84.84.84.84.94 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 55.65.65.65.75.75.75.85.85.85.95.95.95 + 65.65.65.75.75.75.85.85.85.95.95.95 65.65.75.75.75.85.85.85.95.95.95 + 65.75.75.75.85.85.85.95.95.95 75.75.75.85.85.85.95.95.95 + 75.75.85.85.85.95.95.95 75.85.85.85.95.95.95 85.85.85.95.95.95 + 85.85.95.95.95 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.46.46.56.56.56.66.76.86.96.96.96 46.46.56.56.56.66.76.86.96.96.96 + 46.56.56.56.66.76.86.96.96.96 56.56.56.66.76.86.96.96.96 + 56.56.66.76.86.96.96.96 56.66.76.86.96.96.96 66.76.86.96.96.96 + 76.86.96.96.96 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 37.47.47.47.47.57.67.77.77.87.87.97.97 + 47.47.47.47.57.67.77.77.87.87.97.97 47.47.47.57.67.77.77.87.87.97.97 + 47.47.57.67.77.77.87.87.97.97 47.57.67.77.77.87.87.97.97 + 57.67.77.77.87.87.97.97 67.77.77.87.87.97.97 77.77.87.87.97.97 + 77.87.87.97.97 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 28.38.38.58.58.58.58.68.78.78.88.98.98 + 38.38.58.58.58.58.68.78.78.88.98.98 38.58.58.58.58.68.78.78.88.98.98 + 58.58.58.58.68.78.78.88.98.98 58.58.58.68.78.78.88.98.98 + 58.58.68.78.78.88.98.98 58.68.78.78.88.98.98 68.78.78.88.98.98 + 78.78.88.98.98 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 39.49.59.59.59.59.69.79.89.89.89.99.99 + 49.59.59.59.59.69.79.89.89.89.99.99 59.59.59.59.69.79.89.89.89.99.99 + 59.59.59.69.79.89.89.89.99.99 59.59.69.79.89.89.89.99.99 + 59.69.79.89.89.89.99.99 69.79.89.89.89.99.99 79.89.89.89.99.99 + 89.89.89.99.99} + +do_execsql_test 1.19.14.5 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) FROM t2 +} {90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 9.79.49.59.29.59.19.39.9.9.99.69.39 79.49.59.29.59.19.39.9.9.99.69.39 + 49.59.29.59.19.39.9.9.99.69.39 59.29.59.19.39.9.9.99.69.39 + 29.59.19.39.9.9.99.69.39 59.19.39.9.9.99.69.39 19.39.9.9.99.69.39 + 39.9.9.99.69.39 9.9.99.69.39} + +do_execsql_test 1.19.14.6 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) FROM t2 +} {96 38 68 62 46 6 46 78 54 8 84 16 16 86 74 24 + 12 32 56 22 90 28 56 40 56 16 36 98 76 4 94 + 42 30 78 2 80 84 72 58 96 98 74 12 8 20 22 88 + 34 8 34 90 96 60 44 2 74 70 26 26 80 90 36 58 + 72 72 66 64 12 14 62 36 34 36 58 52 30 50 84 + 10 84 44 58 30 38 34 82 89 81 59 39 91 99 97 + 27 97 67 29 93 77 23 93 65 35 47 7 61 91 85 + 85 43 59 3 91 55 15 89 25 47 1 43 75 89 81 33 + 29 53 63 87 37 41 9 61 73 95 65 13 1 21 65 35 + 5 73 11 51 87 41 31 31 15 95 73 79 11 49 59 + 55 75 77 7 85 57 29 59 19 39 47 47 9 33 93 75 + 81 9 23 37 13 91 91 33 15 99 3 95 69 33 21 39 + 83 27 17 7} + +do_execsql_test 1.19.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.19.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.19.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) + ORDER BY 1 +} {1 1 10 11 11 12 12 12 13 13 14 15 15 15 16 16 + 16 17 19 2 2 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 3 3 30 30 30 31 31 32 33 33 + 33 33 34 34 34 34 35 35 36 36 36 36 37 37 38 + 38 39 39 39 4 40 41 41 42 43 43 44 44 46 46 + 47 47 47 47 49 5 50 51 52 53 54 55 55 56 56 + 56 57 58 58 58 58 59 59 59 59 6 60 61 61 62 + 62 63 64 65 65 65 66 67 68 69 7 7 7 70 72 72 + 72 73 73 73 74 74 74 75 75 75 76 77 77 78 78 + 79 8 8 8 80 80 81 81 81 82 83 84 84 84 84 85 + 85 85 86 87 87 88 89 89 89 9 9 9 90 90 90 91 + 91 91 91 91 93 93 93 94 95 95 95 96 96 96 97 + 97 98 98 99 99} + +do_execsql_test 1.19.15.1 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE a%2=0) OVER win FROM t2 + WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) +} {191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 191 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 189 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 188 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 187 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 186 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 185 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 184 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 183 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 182 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 181 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 180 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 179 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 178 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 177 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 176 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 175 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 174 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 173 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 172 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 171 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 170 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 169 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 168 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 167 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 166 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 165 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 164 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 163 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 162 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 161 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 160 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 159 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 158 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 157 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 156 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 155 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 154 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 153 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 152 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 151 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 150 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 149 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 148 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 147 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 146 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 145 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 144 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 143 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 142 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 141 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 140 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 139 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 138 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 137 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 136 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 135 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 134 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 133 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 132 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 131 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 130 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 129 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 128 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 127 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 126 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 125 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 124 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 123 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 122 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 121 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 120 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 119 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 118 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 117 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 116 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 115 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 114 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 113 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 112 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 111 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 110 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 109 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 108 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 107 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 106 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 105 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 104 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 103 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 102 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 101 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 100 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 99 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 98 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 97 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 96 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 95 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 94 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 93 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 92 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 91 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 90 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 89 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 88 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 87 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 86 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 85 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 84 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 83 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 82 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 81 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 80 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 79 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 78 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 77 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 76 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 75 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 74 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 73 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 72 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 71 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 70 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 69 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 68 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 67 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 66 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 65 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 64 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 63 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 62 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 61 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 60 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 59 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 58 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 57 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 56 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 55 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 54 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 53 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 52 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 51 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 50 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 49 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 48 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 47 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 46 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 45 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 44 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 43 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 42 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 41 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 40 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 39 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 38 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 37 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 36 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 35 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 34 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 33 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 32 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 31 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 30 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 29 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 28 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 27 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 26 36.3.69.52.50.10.33.39.58.38.83.82.7 + 25 36.3.69.52.50.10.33.39.58.38.83.82.7 + 24 3.69.52.50.10.33.39.58.38.83.82.7 23 3.69.52.50.10.33.39.58.38.83.82.7 + 22 69.52.50.10.33.39.58.38.83.82.7 21 69.52.50.10.33.39.58.38.83.82.7 + 20 52.50.10.33.39.58.38.83.82.7 19 52.50.10.33.39.58.38.83.82.7 + 18 50.10.33.39.58.38.83.82.7 17 50.10.33.39.58.38.83.82.7 + 16 10.33.39.58.38.83.82.7 15 10.33.39.58.38.83.82.7 + 14 33.39.58.38.83.82.7 13 33.39.58.38.83.82.7 12 39.58.38.83.82.7 + 11 39.58.38.83.82.7 10 58.38.83.82.7 9 58.38.83.82.7 8 38.83.82.7 + 7 38.83.82.7 6 83.82.7 5 83.82.7} + +do_execsql_test 1.19.15.2 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE 0=1) OVER win FROM t2 + WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) +} {191 {} 191 {} 191 {} 191 {} 191 {} 190 {} 189 {} 188 {} + 187 {} 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} + 179 {} 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} + 171 {} 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} + 163 {} 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} + 155 {} 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} + 147 {} 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} + 139 {} 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} + 131 {} 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} + 123 {} 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} + 115 {} 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} + 107 {} 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} + 99 {} 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} + 90 {} 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} + 81 {} 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} + 72 {} 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} + 63 {} 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} + 54 {} 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} + 45 {} 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} + 36 {} 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} + 27 {} 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} + 18 {} 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} + 9 {} 8 {} 7 {} 6 {} 5 {}} + +do_execsql_test 1.19.15.3 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE 1=0) OVER win FROM t2 + WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) +} {20 {} 20 {} 20 {} 20 {} 20 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {} 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} + 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} + 5 {}} + +do_execsql_test 1.19.15.4 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE a%2=0) OVER win FROM t2 + WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES) +} {20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 20 89.6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 18 29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 17 47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 16 59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 15 28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 14 75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 13 78.72.98.87.73.96.74.90.75.91.69.39.7 + 12 72.98.87.73.96.74.90.75.91.69.39.7 11 98.87.73.96.74.90.75.91.69.39.7 + 10 87.73.96.74.90.75.91.69.39.7 9 73.96.74.90.75.91.69.39.7 + 8 96.74.90.75.91.69.39.7 7 74.90.75.91.69.39.7 6 90.75.91.69.39.7 + 5 75.91.69.39.7 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 19 96.97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 17 84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 16 86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 15 32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 14 25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 13 89.29.9.21.12.88.55.70.58.81.91.52.58 + 12 29.9.21.12.88.55.70.58.81.91.52.58 11 9.21.12.88.55.70.58.81.91.52.58 + 10 21.12.88.55.70.58.81.91.52.58 9 12.88.55.70.58.81.91.52.58 + 8 88.55.70.58.81.91.52.58 7 55.70.58.81.91.52.58 6 70.58.81.91.52.58 + 5 58.81.91.52.58 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 19 38.46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 17 23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 16 61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 15 3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 14 1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 13 76.63.73.65.20.8.77.19.9.23.15.50.38 + 12 63.73.65.20.8.77.19.9.23.15.50.38 11 73.65.20.8.77.19.9.23.15.50.38 + 10 65.20.8.77.19.9.23.15.50.38 9 20.8.77.19.9.23.15.50.38 + 8 8.77.19.9.23.15.50.38 7 77.19.9.23.15.50.38 6 19.9.23.15.50.38 + 5 9.23.15.50.38 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 19 39.54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 17 16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 16 85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 15 22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 14 40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 13 4.87.65.5.31.49.2.26.72.13.36.10.83 + 12 87.65.5.31.49.2.26.72.13.36.10.83 11 65.5.31.49.2.26.72.13.36.10.83 + 10 5.31.49.2.26.72.13.36.10.83 9 31.49.2.26.72.13.36.10.83 + 8 49.2.26.72.13.36.10.83 7 2.26.72.13.36.10.83 6 26.72.13.36.10.83 + 5 72.13.36.10.83 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {} 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 19 91.8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 17 65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 16 85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 15 55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 14 56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 13 42.80.58.11.95.90.85.47.33.14.3.33.82 + 12 80.58.11.95.90.85.47.33.14.3.33.82 11 58.11.95.90.85.47.33.14.3.33.82 + 10 11.95.90.85.47.33.14.3.33.82 9 95.90.85.47.33.14.3.33.82 + 8 90.85.47.33.14.3.33.82 7 85.47.33.14.3.33.82 6 47.33.14.3.33.82 + 5 33.14.3.33.82 19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} + 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} + 6 {} 5 {}} + +do_execsql_test 1.20.2.1 { + SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 + 99 99 95 99 99 99 99 95 95 84 84 84 84 84 84 + 84 84 83 83 83 83 82 83 83 83 83} + +do_execsql_test 1.20.2.2 { + SELECT min(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 + 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 3 3 + 3 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 17} + +do_execsql_test 1.20.3.1 { + SELECT row_number() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.20.3.2 { + SELECT row_number() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.20.3.3 { + SELECT row_number() OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.20.4.1 { + SELECT dense_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.20.4.2 { + SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.20.4.3 { + SELECT dense_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 9 9 9 10 + 11 11 12 12 12 13 13 14 15 15 15 16 16 16 17 + 18 19 20 20 21 21 22 22 23 24 25 25 26 26 27 + 28 28 28 29 29 29 30 30 31 32 32 32 32 33 33 + 33 33 34 34 35 35 35 35 36 36 37 37 38 38 38 + 39 40 40 41 42 42 43 43 44 44 45 45 45 45 46 + 47 48 49 50 51 52 52 53 53 53 54 55 55 55 55 + 56 56 56 56 57 58 58 59 59 60 61 62 62 62 63 + 64 65 66 67 68 68 68 69 69 69 70 70 70 71 71 + 71 72 73 73 74 74 75 76 76 77 77 77 78 79 80 + 80 80 80 81 81 81 82 83 83 84 85 85 85 86 86 + 86 87 87 87 87 87 88 88 88 89 90 90 90 91 91 + 91 92 92 93 93 94 94} + +do_execsql_test 1.20.4.4 { + SELECT dense_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 3 3 4 5 6 7 8 8 9 9 9 1 1 2 2 3 + 3 4 4 5 5 6 7 7 8 8 8 9 9 9 9 9 1 1 2 + 2 2 3 3 4 5 6 7 7 8 8 8 9 1 1 2 2 3 3 + 4 4 4 4 5 5 6 7 8 8 8 9 10 10 10 1 2 3 + 4 4 4 4 5 5 6 7 8 8 8 9 9 9 9 10 1 2 2 + 2 3 4 4 5 5 6 6 6 7 7 7 8 8 8 9 9 9 1 + 2 2 2 3 3 4 4 4 4 5 5 6 6 6 7 8 9 10 10 + 10 1 1 1 2 3 3 4 4 5 5 5 5 6 7 8 8 9 9 + 10 10 1 1 1 2 3 3 4 4 4 4 5 6 6 7 8 8 1 + 1 1 2 3 3 3 4 4 4 5 6 6 6 6 7 8 9 9 9 + 10 10} + +do_execsql_test 1.20.4.5 { + SELECT dense_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 + 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 + 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10} + +do_execsql_test 1.20.4.6 { + SELECT dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 + 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 + 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5} + +do_execsql_test 1.20.5.1 { + SELECT rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185 186 187 188 189 190 191} + +do_execsql_test 1.20.5.2 { + SELECT rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 + 12 13 14 15 16 17 18 19 20 21 1 2 3 4 5 6 7 + 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 2 + 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22} + +do_execsql_test 1.20.5.3 { + SELECT rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 3 3 5 5 7 8 9 10 10 10 13 13 13 16 16 + 16 19 20 20 22 22 22 25 25 27 28 28 28 31 31 + 31 34 35 36 37 37 39 39 41 41 43 44 45 45 47 + 47 49 50 50 50 53 53 53 56 56 58 59 59 59 59 + 63 63 63 63 67 67 69 69 69 69 73 73 75 75 77 + 77 77 80 81 81 83 84 84 86 86 88 88 90 90 90 + 90 94 95 96 97 98 99 100 100 102 102 102 105 106 + 106 106 106 110 110 110 110 114 115 115 117 117 119 + 120 121 121 121 124 125 126 127 128 129 129 129 132 + 132 132 135 135 135 138 138 138 141 142 142 144 144 + 146 147 147 149 149 149 152 153 154 154 154 154 158 + 158 158 161 162 162 164 165 165 165 168 168 168 171 + 171 171 171 171 176 176 176 179 180 180 180 183 183 + 183 186 186 188 188 190 190} + +do_execsql_test 1.20.5.4 { + SELECT rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 3 3 6 7 8 9 10 10 12 12 12 1 1 3 3 + 5 5 7 7 9 9 11 12 12 14 14 14 17 17 17 17 + 17 1 1 3 3 3 6 6 8 9 10 11 11 13 13 13 16 + 1 1 3 3 5 5 7 7 7 7 11 11 13 14 15 15 15 + 18 19 19 19 1 2 3 4 4 4 4 8 8 10 11 12 12 + 12 15 15 15 15 19 1 2 2 2 5 6 6 8 8 10 10 + 10 13 13 13 16 16 16 19 19 19 1 2 2 2 5 5 7 + 7 7 7 11 11 13 13 13 16 17 18 19 19 19 1 1 + 1 4 5 5 7 7 9 9 9 9 13 14 15 15 17 17 19 + 19 1 1 1 4 5 5 7 7 7 7 11 12 12 14 15 15 + 1 1 1 4 5 5 5 8 8 8 11 12 12 12 12 16 17 + 18 18 18 21 21} + +do_execsql_test 1.20.5.5 { + SELECT rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 + 15 15 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 52 52 52 52 52 52 52 52 52 52 52 52 + 52 52 52 52 52 52 52 52 52 73 73 73 73 73 73 + 73 73 73 73 73 73 73 73 73 73 73 73 73 92 92 + 92 92 92 92 92 92 92 92 92 92 92 92 92 92 92 + 92 92 92 92 113 113 113 113 113 113 113 113 113 + 113 113 113 113 113 113 113 113 113 113 113 113 134 + 134 134 134 134 134 134 134 134 134 134 134 134 134 + 134 134 134 134 134 134 154 154 154 154 154 154 154 + 154 154 154 154 154 154 154 154 154 170 170 170 170 + 170 170 170 170 170 170 170 170 170 170 170 170 170 + 170 170 170 170 170} + +do_execsql_test 1.20.5.6 { + SELECT rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 15 15 15 15 + 15 15 15 15 15 15 15 15 15 15 15 15 31 31 31 + 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 + 31 50 50 50 50 50 50 50 50 50 50 50 50 50 50 + 50 50 50 50 50 50 50 71 71 71 71 71 71 71 71 + 71 71 71 71 71 71 71 71 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 22 22 22 22 22 22 + 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 + 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 + 43 43 43 43 43 43 64 64 64 64 64 64 64 64 64 + 64 64 64 64 64 64 64 64 64 64 64 84 84 84 84 + 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84 + 84 84 84} + +do_execsql_test 1.20.6.1 { + SELECT + row_number() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ), + rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ), + dense_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + FROM t2 +} {1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 + 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 15 2 16 15 2 17 15 2 + 18 15 2 19 15 2 20 15 2 21 15 2 22 15 2 23 15 2 24 15 2 + 25 15 2 26 15 2 27 15 2 28 15 2 29 15 2 30 15 2 31 31 3 + 32 31 3 33 31 3 34 31 3 35 31 3 36 31 3 37 31 3 38 31 3 + 39 31 3 40 31 3 41 31 3 42 31 3 43 31 3 44 31 3 45 31 3 + 46 31 3 47 31 3 48 31 3 49 31 3 50 50 4 51 50 4 52 50 4 + 53 50 4 54 50 4 55 50 4 56 50 4 57 50 4 58 50 4 59 50 4 + 60 50 4 61 50 4 62 50 4 63 50 4 64 50 4 65 50 4 66 50 4 + 67 50 4 68 50 4 69 50 4 70 50 4 71 71 5 72 71 5 73 71 5 + 74 71 5 75 71 5 76 71 5 77 71 5 78 71 5 79 71 5 80 71 5 + 81 71 5 82 71 5 83 71 5 84 71 5 85 71 5 86 71 5 1 1 1 2 1 1 + 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 + 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 + 20 1 1 21 1 1 22 22 2 23 22 2 24 22 2 25 22 2 26 22 2 27 22 2 + 28 22 2 29 22 2 30 22 2 31 22 2 32 22 2 33 22 2 34 22 2 + 35 22 2 36 22 2 37 22 2 38 22 2 39 22 2 40 22 2 41 22 2 + 42 22 2 43 43 3 44 43 3 45 43 3 46 43 3 47 43 3 48 43 3 + 49 43 3 50 43 3 51 43 3 52 43 3 53 43 3 54 43 3 55 43 3 + 56 43 3 57 43 3 58 43 3 59 43 3 60 43 3 61 43 3 62 43 3 + 63 43 3 64 64 4 65 64 4 66 64 4 67 64 4 68 64 4 69 64 4 + 70 64 4 71 64 4 72 64 4 73 64 4 74 64 4 75 64 4 76 64 4 + 77 64 4 78 64 4 79 64 4 80 64 4 81 64 4 82 64 4 83 64 4 + 84 84 5 85 84 5 86 84 5 87 84 5 88 84 5 89 84 5 90 84 5 + 91 84 5 92 84 5 93 84 5 94 84 5 95 84 5 96 84 5 97 84 5 + 98 84 5 99 84 5 100 84 5 101 84 5 102 84 5 103 84 5 104 84 5 + 105 84 5} + + +do_test 1.20.7.1 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0053 0.0105 0.0158 0.0211 0.0263 0.0316 0.0368 0.0421 0.0474 0.0526 0.0579 0.0632 0.0684 0.0737 0.0789 0.0842 0.0895 0.0947 0.1000 0.1053 0.1105 0.1158 0.1211 0.1263 0.1316 0.1368 0.1421 0.1474 0.1526 0.1579 0.1632 0.1684 0.1737 0.1789 0.1842 0.1895 0.1947 0.2000 0.2053 0.2105 0.2158 0.2211 0.2263 0.2316 0.2368 0.2421 0.2474 0.2526 0.2579 0.2632 0.2684 0.2737 0.2789 0.2842 0.2895 0.2947 0.3000 0.3053 0.3105 0.3158 0.3211 0.3263 0.3316 0.3368 0.3421 0.3474 0.3526 0.3579 0.3632 0.3684 0.3737 0.3789 0.3842 0.3895 0.3947 0.4000 0.4053 0.4105 0.4158 0.4211 0.4263 0.4316 0.4368 0.4421 0.4474 0.4526 0.4579 0.4632 0.4684 0.4737 0.4789 0.4842 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5263 0.5316 0.5368 0.5421 0.5474 0.5526 0.5579 0.5632 0.5684 0.5737 0.5789 0.5842 0.5895 0.5947 0.6000 0.6053 0.6105 0.6158 0.6211 0.6263 0.6316 0.6368 0.6421 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6789 0.6842 0.6895 0.6947 0.7000 0.7053 0.7105 0.7158 0.7211 0.7263 0.7316 0.7368 0.7421 0.7474 0.7526 0.7579 0.7632 0.7684 0.7737 0.7789 0.7842 0.7895 0.7947 0.8000 0.8053 0.8105 0.8158 0.8211 0.8263 0.8316 0.8368 0.8421 0.8474 0.8526 0.8579 0.8632 0.8684 0.8737 0.8789 0.8842 0.8895 0.8947 0.9000 0.9053 0.9105 0.9158 0.9211 0.9263 0.9316 0.9368 0.9421 0.9474 0.9526 0.9579 0.9632 0.9684 0.9737 0.9789 0.9842 0.9895 0.9947 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.7.2 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0769 0.1538 0.2308 0.3077 0.3846 0.4615 0.5385 0.6154 0.6923 0.7692 0.8462 0.9231 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0556 0.1111 0.1667 0.2222 0.2778 0.3333 0.3889 0.4444 0.5000 0.5556 0.6111 0.6667 0.7222 0.7778 0.8333 0.8889 0.9444 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0000 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000 0.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.7.3 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0105 0.0105 0.0211 0.0211 0.0316 0.0368 0.0421 0.0474 0.0474 0.0474 0.0632 0.0632 0.0632 0.0789 0.0789 0.0789 0.0947 0.1000 0.1000 0.1105 0.1105 0.1105 0.1263 0.1263 0.1368 0.1421 0.1421 0.1421 0.1579 0.1579 0.1579 0.1737 0.1789 0.1842 0.1895 0.1895 0.2000 0.2000 0.2105 0.2105 0.2211 0.2263 0.2316 0.2316 0.2421 0.2421 0.2526 0.2579 0.2579 0.2579 0.2737 0.2737 0.2737 0.2895 0.2895 0.3000 0.3053 0.3053 0.3053 0.3053 0.3263 0.3263 0.3263 0.3263 0.3474 0.3474 0.3579 0.3579 0.3579 0.3579 0.3789 0.3789 0.3895 0.3895 0.4000 0.4000 0.4000 0.4158 0.4211 0.4211 0.4316 0.4368 0.4368 0.4474 0.4474 0.4579 0.4579 0.4684 0.4684 0.4684 0.4684 0.4895 0.4947 0.5000 0.5053 0.5105 0.5158 0.5211 0.5211 0.5316 0.5316 0.5316 0.5474 0.5526 0.5526 0.5526 0.5526 0.5737 0.5737 0.5737 0.5737 0.5947 0.6000 0.6000 0.6105 0.6105 0.6211 0.6263 0.6316 0.6316 0.6316 0.6474 0.6526 0.6579 0.6632 0.6684 0.6737 0.6737 0.6737 0.6895 0.6895 0.6895 0.7053 0.7053 0.7053 0.7211 0.7211 0.7211 0.7368 0.7421 0.7421 0.7526 0.7526 0.7632 0.7684 0.7684 0.7789 0.7789 0.7789 0.7947 0.8000 0.8053 0.8053 0.8053 0.8053 0.8263 0.8263 0.8263 0.8421 0.8474 0.8474 0.8579 0.8632 0.8632 0.8632 0.8789 0.8789 0.8789 0.8947 0.8947 0.8947 0.8947 0.8947 0.9211 0.9211 0.9211 0.9368 0.9421 0.9421 0.9421 0.9579 0.9579 0.9579 0.9737 0.9737 0.9842 0.9842 0.9947 0.9947} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.7.4 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0769 0.1538 0.1538 0.1538 0.3846 0.4615 0.5385 0.6154 0.6923 0.6923 0.8462 0.8462 0.8462 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.4000 0.4000 0.5000 0.5500 0.5500 0.6500 0.6500 0.6500 0.8000 0.8000 0.8000 0.8000 0.8000 0.0000 0.0000 0.1333 0.1333 0.1333 0.3333 0.3333 0.4667 0.5333 0.6000 0.6667 0.6667 0.8000 0.8000 0.8000 1.0000 0.0000 0.0000 0.1000 0.1000 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6500 0.7000 0.7000 0.7000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0556 0.1111 0.1667 0.1667 0.1667 0.1667 0.3889 0.3889 0.5000 0.5556 0.6111 0.6111 0.6111 0.7778 0.7778 0.7778 0.7778 1.0000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2500 0.2500 0.3500 0.3500 0.4500 0.4500 0.4500 0.6000 0.6000 0.6000 0.7500 0.7500 0.7500 0.9000 0.9000 0.9000 0.0000 0.0500 0.0500 0.0500 0.2000 0.2000 0.3000 0.3000 0.3000 0.3000 0.5000 0.5000 0.6000 0.6000 0.6000 0.7500 0.8000 0.8500 0.9000 0.9000 0.9000 0.0000 0.0000 0.0000 0.1579 0.2105 0.2105 0.3158 0.3158 0.4211 0.4211 0.4211 0.4211 0.6316 0.6842 0.7368 0.7368 0.8421 0.8421 0.9474 0.9474 0.0000 0.0000 0.0000 0.2000 0.2667 0.2667 0.4000 0.4000 0.4000 0.4000 0.6667 0.7333 0.7333 0.8667 0.9333 0.9333 0.0000 0.0000 0.0000 0.1429 0.1905 0.1905 0.1905 0.3333 0.3333 0.3333 0.4762 0.5238 0.5238 0.5238 0.5238 0.7143 0.7619 0.8095 0.8095 0.8095 0.9524 0.9524} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.7.5 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.0737 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.1842 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.2684 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.3789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.4789 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.5895 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8053 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895 0.8895} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.7.6 { + set myres {} + foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.1647 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.3529 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.5765 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.8235 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.2019 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.4038 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.6058 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981 0.7981} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.1 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0052 0.0105 0.0157 0.0209 0.0262 0.0314 0.0366 0.0419 0.0471 0.0524 0.0576 0.0628 0.0681 0.0733 0.0785 0.0838 0.0890 0.0942 0.0995 0.1047 0.1099 0.1152 0.1204 0.1257 0.1309 0.1361 0.1414 0.1466 0.1518 0.1571 0.1623 0.1675 0.1728 0.1780 0.1832 0.1885 0.1937 0.1990 0.2042 0.2094 0.2147 0.2199 0.2251 0.2304 0.2356 0.2408 0.2461 0.2513 0.2565 0.2618 0.2670 0.2723 0.2775 0.2827 0.2880 0.2932 0.2984 0.3037 0.3089 0.3141 0.3194 0.3246 0.3298 0.3351 0.3403 0.3455 0.3508 0.3560 0.3613 0.3665 0.3717 0.3770 0.3822 0.3874 0.3927 0.3979 0.4031 0.4084 0.4136 0.4188 0.4241 0.4293 0.4346 0.4398 0.4450 0.4503 0.4555 0.4607 0.4660 0.4712 0.4764 0.4817 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5236 0.5288 0.5340 0.5393 0.5445 0.5497 0.5550 0.5602 0.5654 0.5707 0.5759 0.5812 0.5864 0.5916 0.5969 0.6021 0.6073 0.6126 0.6178 0.6230 0.6283 0.6335 0.6387 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6754 0.6806 0.6859 0.6911 0.6963 0.7016 0.7068 0.7120 0.7173 0.7225 0.7277 0.7330 0.7382 0.7435 0.7487 0.7539 0.7592 0.7644 0.7696 0.7749 0.7801 0.7853 0.7906 0.7958 0.8010 0.8063 0.8115 0.8168 0.8220 0.8272 0.8325 0.8377 0.8429 0.8482 0.8534 0.8586 0.8639 0.8691 0.8743 0.8796 0.8848 0.8901 0.8953 0.9005 0.9058 0.9110 0.9162 0.9215 0.9267 0.9319 0.9372 0.9424 0.9476 0.9529 0.9581 0.9634 0.9686 0.9738 0.9791 0.9843 0.9895 0.9948 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.2 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0714 0.1429 0.2143 0.2857 0.3571 0.4286 0.5000 0.5714 0.6429 0.7143 0.7857 0.8571 0.9286 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0526 0.1053 0.1579 0.2105 0.2632 0.3158 0.3684 0.4211 0.4737 0.5263 0.5789 0.6316 0.6842 0.7368 0.7895 0.8421 0.8947 0.9474 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0476 0.0952 0.1429 0.1905 0.2381 0.2857 0.3333 0.3810 0.4286 0.4762 0.5238 0.5714 0.6190 0.6667 0.7143 0.7619 0.8095 0.8571 0.9048 0.9524 1.0000 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000 0.0625 0.1250 0.1875 0.2500 0.3125 0.3750 0.4375 0.5000 0.5625 0.6250 0.6875 0.7500 0.8125 0.8750 0.9375 1.0000 0.0455 0.0909 0.1364 0.1818 0.2273 0.2727 0.3182 0.3636 0.4091 0.4545 0.5000 0.5455 0.5909 0.6364 0.6818 0.7273 0.7727 0.8182 0.8636 0.9091 0.9545 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.3 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0105 0.0105 0.0209 0.0209 0.0314 0.0314 0.0366 0.0419 0.0471 0.0628 0.0628 0.0628 0.0785 0.0785 0.0785 0.0942 0.0942 0.0942 0.0995 0.1099 0.1099 0.1257 0.1257 0.1257 0.1361 0.1361 0.1414 0.1571 0.1571 0.1571 0.1728 0.1728 0.1728 0.1780 0.1832 0.1885 0.1990 0.1990 0.2094 0.2094 0.2199 0.2199 0.2251 0.2304 0.2408 0.2408 0.2513 0.2513 0.2565 0.2723 0.2723 0.2723 0.2880 0.2880 0.2880 0.2984 0.2984 0.3037 0.3246 0.3246 0.3246 0.3246 0.3455 0.3455 0.3455 0.3455 0.3560 0.3560 0.3770 0.3770 0.3770 0.3770 0.3874 0.3874 0.3979 0.3979 0.4136 0.4136 0.4136 0.4188 0.4293 0.4293 0.4346 0.4450 0.4450 0.4555 0.4555 0.4660 0.4660 0.4869 0.4869 0.4869 0.4869 0.4921 0.4974 0.5026 0.5079 0.5131 0.5183 0.5288 0.5288 0.5445 0.5445 0.5445 0.5497 0.5707 0.5707 0.5707 0.5707 0.5916 0.5916 0.5916 0.5916 0.5969 0.6073 0.6073 0.6178 0.6178 0.6230 0.6283 0.6440 0.6440 0.6440 0.6492 0.6545 0.6597 0.6649 0.6702 0.6859 0.6859 0.6859 0.7016 0.7016 0.7016 0.7173 0.7173 0.7173 0.7330 0.7330 0.7330 0.7382 0.7487 0.7487 0.7592 0.7592 0.7644 0.7749 0.7749 0.7906 0.7906 0.7906 0.7958 0.8010 0.8220 0.8220 0.8220 0.8220 0.8377 0.8377 0.8377 0.8429 0.8534 0.8534 0.8586 0.8743 0.8743 0.8743 0.8901 0.8901 0.8901 0.9162 0.9162 0.9162 0.9162 0.9162 0.9319 0.9319 0.9319 0.9372 0.9529 0.9529 0.9529 0.9686 0.9686 0.9686 0.9791 0.9791 0.9895 0.9895 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.4 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%10 ORDER BY b ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0714 0.1429 0.3571 0.3571 0.3571 0.4286 0.5000 0.5714 0.6429 0.7857 0.7857 1.0000 1.0000 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.3810 0.3810 0.4762 0.4762 0.5238 0.6190 0.6190 0.7619 0.7619 0.7619 1.0000 1.0000 1.0000 1.0000 1.0000 0.1250 0.1250 0.3125 0.3125 0.3125 0.4375 0.4375 0.5000 0.5625 0.6250 0.7500 0.7500 0.9375 0.9375 0.9375 1.0000 0.0952 0.0952 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.6190 0.6667 0.8095 0.8095 0.8095 0.8571 1.0000 1.0000 1.0000 0.0526 0.1053 0.1579 0.3684 0.3684 0.3684 0.3684 0.4737 0.4737 0.5263 0.5789 0.7368 0.7368 0.7368 0.9474 0.9474 0.9474 0.9474 1.0000 0.0476 0.1905 0.1905 0.1905 0.2381 0.3333 0.3333 0.4286 0.4286 0.5714 0.5714 0.5714 0.7143 0.7143 0.7143 0.8571 0.8571 0.8571 1.0000 1.0000 1.0000 0.0476 0.1905 0.1905 0.1905 0.2857 0.2857 0.4762 0.4762 0.4762 0.4762 0.5714 0.5714 0.7143 0.7143 0.7143 0.7619 0.8095 0.8571 1.0000 1.0000 1.0000 0.1500 0.1500 0.1500 0.2000 0.3000 0.3000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6500 0.7000 0.8000 0.8000 0.9000 0.9000 1.0000 1.0000 0.1875 0.1875 0.1875 0.2500 0.3750 0.3750 0.6250 0.6250 0.6250 0.6250 0.6875 0.8125 0.8125 0.8750 1.0000 1.0000 0.1364 0.1364 0.1364 0.1818 0.3182 0.3182 0.3182 0.4545 0.4545 0.4545 0.5000 0.6818 0.6818 0.6818 0.6818 0.7273 0.7727 0.9091 0.9091 0.9091 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.5 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.0733 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.2670 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.3770 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.4764 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.5864 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.6963 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8010 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 0.8848 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.6 { + set myres {} + foreach r [db eval {SELECT cume_dist() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.1628 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.3488 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.5698 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 0.8140 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 0.7905 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.1 { + set myres {} + foreach r [db eval {SELECT ntile(100) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 90.0000 91.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.2 { + set myres {} + foreach r [db eval {SELECT ntile(101) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.3 { + set myres {} + foreach r [db eval {SELECT ntile(102) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 88.0000 89.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.4 { + set myres {} + foreach r [db eval {SELECT ntile(103) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000 21.0000 22.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.5 { + set myres {} + foreach r [db eval {SELECT ntile(104) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.6 { + set myres {} + foreach r [db eval {SELECT ntile(105) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + + +do_test 1.20.8.7 { + set myres {} + foreach r [db eval {SELECT ntile(105) OVER ( ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2}] { + lappend myres [format %.4f [set r]] + } + set res2 {1.0000 1.0000 2.0000 2.0000 3.0000 3.0000 4.0000 4.0000 5.0000 5.0000 6.0000 6.0000 7.0000 7.0000 8.0000 8.0000 9.0000 9.0000 10.0000 10.0000 11.0000 11.0000 12.0000 12.0000 13.0000 13.0000 14.0000 14.0000 15.0000 15.0000 16.0000 16.0000 17.0000 17.0000 18.0000 18.0000 19.0000 19.0000 20.0000 20.0000 21.0000 21.0000 22.0000 22.0000 23.0000 23.0000 24.0000 24.0000 25.0000 25.0000 26.0000 26.0000 27.0000 27.0000 28.0000 28.0000 29.0000 29.0000 30.0000 30.0000 31.0000 31.0000 32.0000 32.0000 33.0000 33.0000 34.0000 34.0000 35.0000 35.0000 36.0000 36.0000 37.0000 37.0000 38.0000 38.0000 39.0000 39.0000 40.0000 40.0000 41.0000 41.0000 42.0000 42.0000 43.0000 43.0000 44.0000 44.0000 45.0000 45.0000 46.0000 46.0000 47.0000 47.0000 48.0000 48.0000 49.0000 49.0000 50.0000 50.0000 51.0000 51.0000 52.0000 52.0000 53.0000 53.0000 54.0000 54.0000 55.0000 55.0000 56.0000 56.0000 57.0000 57.0000 58.0000 58.0000 59.0000 59.0000 60.0000 60.0000 61.0000 61.0000 62.0000 62.0000 63.0000 63.0000 64.0000 64.0000 65.0000 65.0000 66.0000 66.0000 67.0000 67.0000 68.0000 68.0000 69.0000 69.0000 70.0000 70.0000 71.0000 71.0000 72.0000 72.0000 73.0000 73.0000 74.0000 74.0000 75.0000 75.0000 76.0000 76.0000 77.0000 77.0000 78.0000 78.0000 79.0000 79.0000 80.0000 80.0000 81.0000 81.0000 82.0000 82.0000 83.0000 83.0000 84.0000 84.0000 85.0000 85.0000 86.0000 86.0000 87.0000 88.0000 89.0000 90.0000 91.0000 92.0000 93.0000 94.0000 95.0000 96.0000 97.0000 98.0000 99.0000 100.0000 101.0000 102.0000 103.0000 104.0000 105.0000} + set i 0 + foreach r [set myres] r2 [set res2] { + if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { + error "list element [set i] does not match: got=[set r] expected=[set r2]" + } + incr i + } + set {} {} +} {} + +do_execsql_test 1.20.9.1 { + SELECT last_value(a+b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 216} + +do_execsql_test 1.20.9.2 { + SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {223 223 223 223 223 223 223 223 223 223 223 223 223 + 196 210 210 210 210 210 210 210 210 210 210 210 210 + 210 210 210 210 210 210 210 210 263 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 234 279 + 279 279 279 279 279 279 279 279 279 279 279 279 279 + 279 279 279 279 279 279 221 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 235 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 189 212 212 212 212 212 + 212 212 212 212 212 212 212 212 212 212 212 212 212 + 212 212 207 207 207 207 207 207 207 207 207 207 207 + 207 207 207 207 207 207 207 207 207 216 232 232 232 + 232 232 232 232 232 232 232 232 232 232 232 232 250 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 249} + +do_execsql_test 1.20.9.3 { + SELECT last_value(a+b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 120} + +do_execsql_test 1.20.9.4 { + SELECT last_value(a+b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {240 240 240 240 240 240 240 240 240 240 240 240 240 + 218 263 263 263 263 263 263 263 263 263 263 263 263 + 263 263 263 263 263 263 263 263 261 280 280 280 280 + 280 280 280 280 280 280 280 280 280 280 280 228 252 + 252 252 252 252 252 252 252 252 252 252 252 252 252 + 252 252 252 252 252 252 130 171 171 171 171 171 171 + 171 171 171 171 171 171 171 171 171 171 171 171 271 + 274 274 274 274 274 274 274 274 274 274 274 274 274 + 274 274 274 274 274 274 274 213 226 226 226 226 226 + 226 226 226 226 226 226 226 226 226 226 226 226 226 + 226 226 195 124 124 124 124 124 124 124 124 124 124 + 124 124 124 124 124 124 124 124 124 119 198 198 198 + 198 198 198 198 198 198 198 198 198 198 198 198 171 + 276 276 276 276 276 276 276 276 276 276 276 276 276 + 276 276 276 276 276 276 276 276 120} + +do_execsql_test 1.20.9.5 { + SELECT last_value(a+b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 229 229 229 229 229 + 229 229 229 229 229 229 229 229 249} + +do_execsql_test 1.20.9.6 { + SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.10.1 { + SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {98 9 73 75 43 78 32 4 5 25 27 15 31 24 43 98 + 94 79 77 61 22 79 8 73 3 85 43 34 98 36 63 91 + 11 20 21 75 90 56 96 84 5 28 33 5 56 59 81 19 + 87 36 2 26 63 73 89 95 74 73 79 29 70 65 33 + 14 26 47 94 14 15 5 72 41 11 75 19 53 91 79 + 37 91 93 59 58 36 23 84 33 73 47 58 34 58 73 + 15 13 7 11 99 31 66 38 80 79 95 60 59 19 59 + {} 85 39 27 {} 9 59 75 91 33 {} 84 {} 33 50 + {} {} 36 77 29 {} 30 {} 12 {} 17 75 58 62 91 + 58 {} {} 50 {} 27 75 {} {} {} 33 {} {} {} {} + 62 50 17 36 36 95 {} {} {} {} {} 10 {} {} {} + 99 {} {} {} {} {} {} {} 30 {} {} {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.10.2 { + SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 61 {} {} {} 81 {} 91 {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 22 {} {} {} 12 + {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} + {} 83 {} {} {} {} {} {} {} 33 {} {} {} {} {} + {} 94 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 85 {} {} {} {} {} {} 95 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 66 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 87 {} {} {} {} {} 37 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} 58 {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 19 {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.10.3 { + SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {2 2 2 2 2 3 5 7 7 8 8 9 9 10 11 12 12 12 + 13 15 15 16 16 16 19 20 21 22 23 23 25 26 26 + 27 29 30 30 31 32 33 33 33 34 34 35 36 36 36 + 37 38 39 39 40 41 41 43 43 44 46 47 47 47 49 + 50 51 52 54 55 56 56 56 57 58 58 59 59 59 60 + 61 62 63 64 65 66 67 69 70 72 73 73 74 74 74 + 75 77 78 79 80 81 82 83 84 84 84 85 86 87 87 + 88 89 89 90 90 91 91 91 93 93 94 95 96 96 96 + 97 98 99 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.10.4 { + SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {90 {} {} {} {} {} {} {} {} {} {} {} {} {} 11 + 11 61 61 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 72 72 {} {} {} {} {} + {} {} {} {} {} {} 23 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 85 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 86 86 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 47 47 + 47 97 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} + {} {} {} {} 49 49 49 99 {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.10.5 { + SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {65 72 81 34 41 35 73 74 14 15 32 53 1 2 35 5 + 74 95 55 61 75 63 34 81 12 91 74 93 43 33 22 + 75 56 56 23 85 72 23 33 84 22 15 93 73 12 6 + 46 43 75 75 36 87 54 87 85 43 15 84 85 56 66 + 83 36 97 85 78 34 94 75 33 65 17 36 68 7 15 + 94 38 78 27 95 96 36 68 7 15 16 38 89 66 56 + 38 76 89 89 47 85 56 59 {} 8 88 27 95 16 {} + 98 79 39 59 16 {} {} 8 16 98 36 66 {} 99 29 + 59 97 8 {} {} {} 27 17 8 {} 8 58 {} 98 {} {} + {} 29 87 19 {} 89 {} {} 37 {} {} {} 59 59 58 + 8 99 {} {} 98 29 {} {} {} {} 58 {} 89 {} {} + {} {} {} {} {} {} {} {} {} {} {} 19 {} {} {} + {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.10.6 { + SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.11.1 { + SELECT first_value(b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {81 89 89 89 89 81 96 59 38 68 39 62 91 46 6 + 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 + 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 + 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 + 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 + 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 + 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 + 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 + 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 + 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 + 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 + 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 + 39 44 58 30 38 34 83} + +do_execsql_test 1.20.11.2 { + SELECT first_value(b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {40 90 90 90 90 40 30 80 20 90 60 70 80 90 91 + 81 81 81 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 12 62 62 62 62 12 32 22 42 2 72 + 12 22 2 72 72 23 93 93 93 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 84 54 54 54 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 35 + 65 65 65 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 46 96 96 96 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 27 97 97 97 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 68 + 38 38 38 38 68 78 8 28 98 78 58 98 8 88 8 59 + 89 89 89 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} + +do_execsql_test 1.20.11.3 { + SELECT first_value(b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 1 1 1 1 1 2 2 3 3 4 5 6 7 7 7 8 8 8 + 9 9 9 10 11 11 12 12 12 13 13 14 15 15 15 16 + 16 16 17 19 20 21 21 22 22 23 23 24 25 26 26 + 27 27 28 29 29 29 30 30 30 31 31 32 33 33 33 + 33 34 34 34 34 35 35 36 36 36 36 37 37 38 38 + 39 39 39 40 41 41 42 43 43 44 44 46 46 47 47 + 47 47 49 50 51 52 53 54 55 55 56 56 56 57 58 + 58 58 58 59 59 59 59 60 61 61 62 62 63 64 65 + 65 65 66 67 68 69 70 72 72 72 73 73 73 74 74 + 74 75 75 75 76 77 77 78 78 79 80 80 81 81 81 + 82 83 84 84 84 84 85 85 85 86 87 87 88 89 89 + 89 90 90 90 91 91 91 91 91 93 93 93 94 95 95 + 95 96 96 96 97 97} + +do_execsql_test 1.20.11.4 { + SELECT first_value(b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {20 10 10 10 10 20 30 30 30 40 50 60 70 80 1 1 + 1 1 1 1 11 11 21 21 31 31 41 41 51 61 61 81 + 81 81 91 2 2 2 2 2 2 12 12 12 22 22 32 42 + 52 62 62 3 3 3 3 3 3 13 13 23 23 33 33 33 + 33 43 43 53 63 73 73 73 14 4 4 4 4 14 24 34 + 34 34 34 44 44 54 64 74 74 74 84 15 5 5 5 5 + 15 15 15 25 35 35 55 55 65 65 65 75 75 75 85 + 85 16 6 6 6 6 16 16 16 26 26 36 36 36 36 46 + 46 56 56 56 66 76 7 7 7 7 7 7 7 17 27 27 37 + 37 47 47 47 47 57 67 77 77 8 8 8 8 8 8 8 28 + 38 38 58 58 58 58 68 78 9 9 9 9 9 9 9 19 29 + 29 29 39 39 39 49 59 59 59 59 69 79 89} + +do_execsql_test 1.20.11.5 { + SELECT first_value(b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {40 90 90 90 90 40 30 80 20 90 60 70 80 90 30 + 50 10 30 81 91 61 91 91 1 81 41 61 1 21 11 51 + 41 31 31 11 81 91 91 21 62 12 32 22 42 2 72 + 12 22 2 72 72 12 62 52 82 93 23 93 43 3 43 33 + 53 63 73 13 73 73 33 93 23 13 33 3 33 83 54 + 84 74 24 4 94 84 74 34 34 44 74 64 14 34 84 + 84 44 34 65 35 85 85 55 15 25 75 95 65 65 35 + 5 15 95 55 75 85 75 15 95 96 46 6 46 16 16 86 + 56 56 56 16 36 76 96 96 26 26 36 66 36 36 97 + 27 97 67 77 47 7 47 87 37 87 77 7 57 47 47 37 + 27 17 7 38 68 78 8 28 98 78 58 98 8 88 8 58 + 58 58 38 89 59 39 99 29 59 89 89 29 9 79 49 + 59 29 59 19 39 9} + +do_execsql_test 1.20.11.6 { + SELECT first_value(b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.12.1 { + SELECT lead(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 + 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 + 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 + 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 + 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 + 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 + 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 + 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 + 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} + 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 + 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} + {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} + {} {} {} {}} + +do_execsql_test 1.20.12.2 { + SELECT lead(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} + {} {} {} {} {} {} 62 {} {} {} 12 {} {} {} 72 + {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} + {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} + {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.12.3 { + SELECT lead(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 + 14 15 16 16 17 19 20 21 22 23 24 25 26 27 27 + 28 29 30 31 32 33 33 33 34 34 35 36 36 36 37 + 38 39 39 40 41 42 43 43 44 46 47 47 47 49 50 + 52 53 54 55 56 56 57 58 58 58 59 59 59 60 61 + 62 62 64 65 65 67 69 70 72 72 73 74 74 75 75 + 75 77 78 80 81 81 83 84 84 85 85 85 87 88 89 + 89 89 90 90 91 91 91 93 93 94 95 95 96 97 97 + 98 99 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.12.4 { + SELECT lead(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 + 11 81 81 {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} 12 12 72 82 {} {} {} {} {} {} + {} {} {} {} {} {} 13 23 73 73 {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} 34 84 {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} 36 86 96 96 {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 + 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} + {} {} {} {} 39 49 59 {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.12.5 { + SELECT lead(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {34 72 91 74 21 55 23 94 84 95 2 13 61 22 55 + 55 94 85 75 81 65 73 74 21 72 12 94 33 63 73 + 72 96 36 76 3 25 62 3 73 34 12 46 43 93 72 16 + 86 63 15 65 36 77 24 57 25 53 95 34 95 16 97 + 74 97 67 25 98 44 34 65 54 5 68 96 28 47 95 + 34 39 8 38 6 46 96 28 47 95 56 39 99 97 76 8 + 26 9 79 27 95 16 29 {} 58 58 77 85 56 {} 98 + 29 {} 19 96 {} {} 78 56 98 36 97 {} 89 89 29 + 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} + {} 39 57 9 {} 79 {} {} 7 {} {} {} 9 29 38 78 + {} {} {} 8 39 {} {} {} {} 59 {} 99 {} {} {} + {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} + {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.12.6 { + SELECT lead(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.13.1 { + SELECT lag(b,b) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} + {} {} {} 6 {} {} {} {} {} 81 46 6 {} {} {} {} + 23 {} {} {} {} {} 27 {} {} {} 35 6 {} 12 {} + 23 {} {} 61 84 {} 93 39 47 {} 54 46 96 56 {} + 16 {} {} {} {} 89 {} 16 43 {} 85 56 29 99 53 + {} 59 {} {} 91 59 53 84 99 {} 93 63 47 {} {} + 98 33 67 35 75 1 23 13 55 27 75 98 35 73 63 2 + 21 27 13 24 86 23 84 31 20 94 61 65 75 23 36 + 94 55 90 41 77 96 56 29 40 12 89 63 11 5 73 + 79 1 16 28 31 73 5 39 53 63 41 11 40 2 13 33 + 9 29 90 47 72 9 73 30 44 33 74 93 29 74 42 34 + 63 41 34 96 47 77 1 36 74 72 14 36 26 77 9 72 + 64 8 91 31 52 30} + +do_execsql_test 1.20.13.2 { + SELECT lag(b,b) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 {} 81 {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 + {} {} 62 {} {} {} {} {} {} {} 23 {} {} {} {} + {} {} {} {} {} {} {} 43 {} 23 {} {} {} {} {} + {} 54 {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} + {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} + {} 27 7 {} {} {} {} {} {} {} {} {} 68 {} 8 {} + {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} + {} {} {} {} {} 29 9 {} {} {}} + +do_execsql_test 1.20.13.3 { + SELECT lag(b,b) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {{} 1 1 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 + 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 9 9 + 9 9 9 10 10 10 10 11 11 11 11 11 12 12 12 12 + 13 13 13 13 13 14 15 15 15 15 16 16 16 16 16 + 17 19 20 20 21 21 21 21 22 22 22 22 23 23 23 + 23 23 24 23 24 24 25 26 26 26 26 26 26 26 26 + 26 26 26 27 27 27 27 28 29 29 29 29 30 30 30 + 30 30 30 31 31 31 31 31 32 32 32 32 32 32 31 + 32 33 33 33 33 33 33 34 34 34 34 34 34 34 34 + 35 35 35 35 35 36 36 36 36 36 36 36 37 37 37 + 38 38 38 38 38 38 39 39 39 39 40 40 41 41 42 + 43 42 43 43 43 43 44 44 44 46 46 46 47 47 47 + 47 47} + +do_execsql_test 1.20.13.4 { + SELECT lag(b,b) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.13.5 { + SELECT lag(b,b) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} 30 {} {} + {} {} {} {} 91 {} {} {} 61 80 81 {} {} {} {} + 1 {} {} {} 30 {} 21 90 61 {} 22 {} 11 41 12 + {} {} 62 {} {} {} {} 31 {} 50 23 30 21 90 {} + {} 62 {} {} 81 {} 22 43 62 23 32 {} 91 {} 90 + 93 54 {} {} 90 72 12 22 90 81 83 23 80 20 72 + 43 51 33 80 90 2 34 54 1 20 62 12 13 75 44 30 + 93 91 1 21 55 61 61 13 85 3 65 65 91 73 33 93 + 55 84 62 31 11 65 35 85 33 55 15 12 75 22 3 + 73 65 36 85 43 95 43 13 47 44 65 65 96 36 27 + 7 46 34 94 47 36 73 34 35 73 68 24 8 75 85 75 + 66 34 95 36 84 77 46 34 84 47 89 65 36 16 38 + 76 58 57 29 9 44 56 17} + +do_execsql_test 1.20.13.6 { + SELECT lag(b,b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.14.1 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {81.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.96.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.59.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.38.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.81.96.59.68.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.96.59.38.39.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.59.38.68.62.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.38.68.39.91.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 38.68.39.62.46.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 68.39.62.91.6.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.62.91.46.99.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.46.6.97.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.46.6.99.27.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.6.99.97.46.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 6.99.97.27.78.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.97.27.46.54.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.27.46.78.97.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 27.46.78.54.8.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 46.78.54.97.67.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.54.97.8.29.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 54.97.8.67.93.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 97.8.67.29.84.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.67.29.93.77.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 67.29.93.84.23.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.93.84.77.16.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.84.77.23.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.77.23.16.93.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.23.16.16.65.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.16.16.93.35.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.16.93.65.47.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.93.65.35.7.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.65.35.47.86.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.47.7.74.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.47.7.86.61.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.7.86.74.91.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.86.74.61.85.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 86.74.61.91.24.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.61.91.85.85.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.91.85.24.43.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.85.24.85.59.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.24.85.43.12.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 24.85.43.59.32.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.43.59.12.56.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.59.12.32.3.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.12.32.56.91.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.32.56.3.22.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 32.56.3.91.90.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.3.91.22.55.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.91.22.90.15.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.22.90.55.28.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.90.55.15.89.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.55.15.28.25.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.15.28.89.47.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.28.89.25.1.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 28.89.25.47.56.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.25.47.1.40.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 25.47.1.56.43.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.1.56.40.56.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.56.40.43.16.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.40.43.56.75.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 40.43.56.16.36.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 43.56.16.75.89.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 56.16.75.36.98.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 16.75.36.89.76.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.36.89.98.81.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.89.98.76.4.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 89.98.76.81.94.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.76.81.4.42.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 76.81.4.94.30.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.4.94.42.78.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 4.94.42.30.33.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 94.42.30.78.29.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 42.30.78.33.53.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.78.33.29.63.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 78.33.29.53.2.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.29.53.63.87.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.53.63.2.37.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 53.63.2.87.80.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 63.2.87.37.84.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.87.37.80.72.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.37.80.84.41.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.80.84.72.9.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.84.72.41.61.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 84.72.41.9.73.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.41.9.61.95.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.9.61.73.65.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.61.73.95.13.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 61.73.95.65.58.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.95.65.13.96.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.65.13.58.98.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.13.58.96.1.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.58.96.98.21.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.96.98.1.74.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.98.1.21.65.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 98.1.21.74.35.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 1.21.74.65.5.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 21.74.65.35.73.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.65.35.5.11.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 65.35.5.73.51.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 35.5.73.11.87.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 5.73.11.51.41.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.11.51.87.12.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.51.87.41.8.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 51.87.41.12.20.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 87.41.12.8.31.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 41.12.8.20.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.8.20.31.15.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.20.31.31.95.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 20.31.31.15.22.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.31.15.95.73.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 31.15.95.22.79.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.95.22.73.88.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.22.73.79.34.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 22.73.79.88.8.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 73.79.88.34.11.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 79.88.34.8.49.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 88.34.8.11.34.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.8.11.49.90.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 8.11.49.34.59.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 11.49.34.90.96.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 49.34.90.59.60.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.90.59.96.55.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.59.96.60.75.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.96.60.55.77.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 96.60.55.75.44.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 60.55.75.77.2.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 55.75.77.44.7.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.77.44.2.85.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 77.44.2.7.57.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 44.2.7.85.74.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 2.7.85.57.29.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 7.85.57.74.70.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 85.57.74.29.59.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 57.74.29.70.19.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 74.29.70.59.39.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 29.70.59.19.26.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 70.59.19.39.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 59.19.39.26.47.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 19.39.26.26.80.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 39.26.26.47.90.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.26.47.80.36.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 26.47.80.90.58.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.80.90.36.47.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 80.90.36.58.9.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 90.36.58.47.72.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.58.47.9.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.47.9.72.66.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 47.9.72.72.33.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.72.72.66.93.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.72.66.33.75.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 72.66.33.93.64.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 66.33.93.75.81.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.93.75.64.9.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 93.75.64.81.23.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 75.64.81.9.37.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 64.81.9.23.13.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 81.9.23.37.12.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 9.23.37.13.14.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 23.37.13.12.62.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 37.13.12.14.91.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 13.12.14.62.36.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 12.14.62.91.91.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 14.62.91.36.33.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 62.91.36.91.15.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.36.91.33.34.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.91.33.15.36.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 91.33.15.34.99.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 33.15.34.36.3.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 15.34.36.99.95.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 34.36.99.3.69.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 36.99.3.95.58.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 99.3.95.69.52.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 3.95.69.58.30.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 95.69.58.52.50.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 69.58.52.30.84.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 58.52.30.50.10.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 52.30.50.84.84.33.21.39.44.58.30.38.34.83.27.82.17.7 + 30.50.84.10.33.21.39.44.58.30.38.34.83.27.82.17.7 + 50.84.10.84.21.39.44.58.30.38.34.83.27.82.17.7 + 84.10.84.33.39.44.58.30.38.34.83.27.82.17.7 + 10.84.33.21.44.58.30.38.34.83.27.82.17.7 + 84.33.21.39.58.30.38.34.83.27.82.17.7 33.21.39.44.30.38.34.83.27.82.17.7 + 21.39.44.58.38.34.83.27.82.17.7 39.44.58.30.34.83.27.82.17.7 + 44.58.30.38.83.27.82.17.7 58.30.38.34.27.82.17.7 30.38.34.83.82.17.7 + 38.34.83.27.17.7 34.83.27.82.7 83.27.82.17} + +do_execsql_test 1.20.14.2 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {40.30.80.20.90.60.70.80.90.30.50.10.30 + 90.30.80.20.90.60.70.80.90.30.50.10.30 + 90.40.80.20.90.60.70.80.90.30.50.10.30 + 90.40.30.20.90.60.70.80.90.30.50.10.30 + 90.40.30.80.90.60.70.80.90.30.50.10.30 + 40.30.80.20.60.70.80.90.30.50.10.30 30.80.20.90.70.80.90.30.50.10.30 + 80.20.90.60.80.90.30.50.10.30 20.90.60.70.90.30.50.10.30 + 90.60.70.80.30.50.10.30 60.70.80.90.50.10.30 70.80.90.30.10.30 + 80.90.30.50.30 90.30.50.10 + 91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.61.91.91.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 61.91.91.1.41.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.91.1.81.61.1.21.11.51.41.31.31.11.81.91.91.21 + 91.1.81.41.1.21.11.51.41.31.31.11.81.91.91.21 + 1.81.41.61.21.11.51.41.31.31.11.81.91.91.21 + 81.41.61.1.11.51.41.31.31.11.81.91.91.21 + 41.61.1.21.51.41.31.31.11.81.91.91.21 61.1.21.11.41.31.31.11.81.91.91.21 + 1.21.11.51.31.31.11.81.91.91.21 21.11.51.41.31.11.81.91.91.21 + 11.51.41.31.11.81.91.91.21 51.41.31.31.81.91.91.21 41.31.31.11.91.91.21 + 31.31.11.81.91.21 31.11.81.91.21 11.81.91.91 + 12.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.32.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.22.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.42.2.72.12.22.2.72.72.12.62.52.82 + 62.12.32.22.2.72.12.22.2.72.72.12.62.52.82 + 12.32.22.42.72.12.22.2.72.72.12.62.52.82 + 32.22.42.2.12.22.2.72.72.12.62.52.82 22.42.2.72.22.2.72.72.12.62.52.82 + 42.2.72.12.2.72.72.12.62.52.82 2.72.12.22.72.72.12.62.52.82 + 72.12.22.2.72.12.62.52.82 12.22.2.72.12.62.52.82 22.2.72.72.62.52.82 + 2.72.72.12.52.82 72.72.12.62.82 72.12.62.52 + 23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.23.93.43.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 23.93.43.3.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 93.43.3.43.53.63.73.13.73.73.33.93.23.13.33.3.33.83 + 43.3.43.33.63.73.13.73.73.33.93.23.13.33.3.33.83 + 3.43.33.53.73.13.73.73.33.93.23.13.33.3.33.83 + 43.33.53.63.13.73.73.33.93.23.13.33.3.33.83 + 33.53.63.73.73.73.33.93.23.13.33.3.33.83 + 53.63.73.13.73.33.93.23.13.33.3.33.83 63.73.13.73.33.93.23.13.33.3.33.83 + 73.13.73.73.93.23.13.33.3.33.83 13.73.73.33.23.13.33.3.33.83 + 73.73.33.93.13.33.3.33.83 73.33.93.23.33.3.33.83 33.93.23.13.3.33.83 + 93.23.13.33.33.83 23.13.33.3.83 13.33.3.33 + 84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 54.84.74.24.94.84.74.34.34.44.74.64.14.34.84.84.44.34 + 84.74.24.4.84.74.34.34.44.74.64.14.34.84.84.44.34 + 74.24.4.94.74.34.34.44.74.64.14.34.84.84.44.34 + 24.4.94.84.34.34.44.74.64.14.34.84.84.44.34 + 4.94.84.74.34.44.74.64.14.34.84.84.44.34 + 94.84.74.34.44.74.64.14.34.84.84.44.34 + 84.74.34.34.74.64.14.34.84.84.44.34 74.34.34.44.64.14.34.84.84.44.34 + 34.34.44.74.14.34.84.84.44.34 34.44.74.64.34.84.84.44.34 + 44.74.64.14.84.84.44.34 74.64.14.34.84.44.34 64.14.34.84.44.34 + 14.34.84.84.34 34.84.84.44 + 35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 65.35.85.85.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 35.85.85.55.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.85.55.15.75.95.65.65.35.5.15.95.55.75.85.75.15.95 + 85.55.15.25.95.65.65.35.5.15.95.55.75.85.75.15.95 + 55.15.25.75.65.65.35.5.15.95.55.75.85.75.15.95 + 15.25.75.95.65.35.5.15.95.55.75.85.75.15.95 + 25.75.95.65.35.5.15.95.55.75.85.75.15.95 + 75.95.65.65.5.15.95.55.75.85.75.15.95 95.65.65.35.15.95.55.75.85.75.15.95 + 65.65.35.5.95.55.75.85.75.15.95 65.35.5.15.55.75.85.75.15.95 + 35.5.15.95.75.85.75.15.95 5.15.95.55.85.75.15.95 15.95.55.75.75.15.95 + 95.55.75.85.15.95 55.75.85.75.95 75.85.75.15 + 46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 96.46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 6.46.16.16.56.56.56.16.36.76.96.96.26.26.36.66.36.36 + 46.16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36 + 16.86.56.56.16.36.76.96.96.26.26.36.66.36.36 + 86.56.56.56.36.76.96.96.26.26.36.66.36.36 + 56.56.56.16.76.96.96.26.26.36.66.36.36 + 56.56.16.36.96.96.26.26.36.66.36.36 56.16.36.76.96.26.26.36.66.36.36 + 16.36.76.96.26.26.36.66.36.36 36.76.96.96.26.36.66.36.36 + 76.96.96.26.36.66.36.36 96.96.26.26.66.36.36 96.26.26.36.36.36 + 26.26.36.66.36 26.36.66.36 + 27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.27.97.67.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 27.97.67.77.7.47.87.37.87.77.7.57.47.47.37.27.17.7 + 97.67.77.47.47.87.37.87.77.7.57.47.47.37.27.17.7 + 67.77.47.7.87.37.87.77.7.57.47.47.37.27.17.7 + 77.47.7.47.37.87.77.7.57.47.47.37.27.17.7 + 47.7.47.87.87.77.7.57.47.47.37.27.17.7 + 7.47.87.37.77.7.57.47.47.37.27.17.7 47.87.37.87.7.57.47.47.37.27.17.7 + 87.37.87.77.57.47.47.37.27.17.7 37.87.77.7.47.47.37.27.17.7 + 87.77.7.57.47.37.27.17.7 77.7.57.47.37.27.17.7 7.57.47.47.27.17.7 + 57.47.47.37.17.7 47.47.37.27.7 47.37.27.17 + 68.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.78.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.8.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.28.98.78.58.98.8.88.8.58.58.58.38 + 38.68.78.8.98.78.58.98.8.88.8.58.58.58.38 + 68.78.8.28.78.58.98.8.88.8.58.58.58.38 + 78.8.28.98.58.98.8.88.8.58.58.58.38 8.28.98.78.98.8.88.8.58.58.58.38 + 28.98.78.58.8.88.8.58.58.58.38 98.78.58.98.88.8.58.58.58.38 + 78.58.98.8.8.58.58.58.38 58.98.8.88.58.58.58.38 98.8.88.8.58.58.38 + 8.88.8.58.58.38 88.8.58.58.38 8.58.58.58 + 59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.29.59.19.39.9.9.99.69.39 9.79.49.59.59.19.39.9.9.99.69.39 + 79.49.59.29.19.39.9.9.99.69.39 49.59.29.59.39.9.9.99.69.39 + 59.29.59.19.9.9.99.69.39 29.59.19.39.9.99.69.39 59.19.39.9.99.69.39 + 19.39.9.9.69.39 39.9.9.99.39 9.9.99.69} + +do_execsql_test 1.20.14.3 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.3.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.1.2.2.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 1.2.2.3.4.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.2.3.3.5.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 2.3.3.4.6.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.3.4.5.7.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 3.4.5.6.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 4.5.6.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 5.6.7.7.8.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 6.7.7.7.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.7.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.7.8.8.9.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 7.8.8.8.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.8.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.8.9.9.10.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 8.9.9.9.11.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.9.10.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.9.10.11.12.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 9.10.11.11.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 10.11.11.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.11.12.12.13.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 11.12.12.12.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.12.13.14.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.12.13.13.15.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 12.13.13.14.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.13.14.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 13.14.15.15.16.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 14.15.15.15.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.15.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.15.16.16.17.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 15.16.16.16.19.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.16.17.20.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.16.17.19.21.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 16.17.19.20.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 17.19.20.21.22.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 19.20.21.21.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 20.21.21.22.23.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.21.22.22.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 21.22.22.23.24.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.22.23.23.25.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 22.23.23.24.26.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.23.24.25.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 23.24.25.26.27.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 24.25.26.26.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 25.26.26.27.28.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.26.27.27.29.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 26.27.27.28.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.27.28.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 27.28.29.29.30.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 28.29.29.29.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.29.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.29.30.30.31.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 29.30.30.30.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.30.31.32.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.30.31.31.33.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 30.31.31.32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.31.32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 31.32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 32.33.33.33.34.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 33.34.34.34.35.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.34.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.34.35.36.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.34.35.35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 34.35.35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 35.36.36.36.37.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.36.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.36.37.38.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.36.37.37.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 36.37.37.38.39.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.37.38.38.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 37.38.38.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.38.39.39.40.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 38.39.39.39.41.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.39.40.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.39.40.41.42.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 39.40.41.41.43.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 40.41.41.42.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.41.42.43.44.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 41.42.43.43.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 42.43.43.44.46.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.43.44.44.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 43.44.44.46.47.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.44.46.46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 44.46.46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 46.47.47.47.49.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.47.50.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.47.49.51.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.47.49.50.52.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 47.49.50.51.53.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 49.50.51.52.54.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 50.51.52.53.55.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 51.52.53.54.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 52.53.54.55.56.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 53.54.55.55.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 54.55.55.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.55.56.56.57.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 55.56.56.56.58.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.56.57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.56.57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 56.57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 57.58.58.58.59.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 58.59.59.59.60.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.59.61.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.59.60.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.59.60.61.62.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 59.60.61.61.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 60.61.61.62.63.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.61.62.62.64.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 61.62.62.63.65.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.62.63.64.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 62.63.64.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 63.64.65.65.66.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 64.65.65.65.67.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.65.66.68.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.65.66.67.69.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 65.66.67.68.70.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 66.67.68.69.72.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 67.68.69.70.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 68.69.70.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 69.70.72.72.73.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 70.72.72.72.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.72.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.72.73.73.74.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 72.73.73.73.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.73.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.73.74.74.75.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 73.74.74.74.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.74.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.74.75.75.76.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 74.75.75.75.77.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.75.76.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.75.76.77.78.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 75.76.77.77.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 76.77.77.78.79.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.77.78.78.80.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 77.78.78.79.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.78.79.80.81.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 78.79.80.80.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 79.80.80.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.80.81.81.82.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 80.81.81.81.83.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.81.82.84.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.81.82.83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 81.82.83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 82.83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 83.84.84.84.85.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.84.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.84.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.84.85.85.86.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 84.85.85.85.87.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.85.86.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.85.86.87.88.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 85.86.87.87.89.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 86.87.87.88.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.87.88.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 87.88.89.89.90.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 88.89.89.89.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.89.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.89.90.90.91.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 89.90.90.90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 90.91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.91.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.91.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.91.93.93.94.95.95.95.96.96.96.97.97.98.98.99.99 + 91.93.93.93.95.95.95.96.96.96.97.97.98.98.99.99 + 93.93.93.94.95.95.96.96.96.97.97.98.98.99.99 + 93.93.94.95.95.96.96.96.97.97.98.98.99.99 + 93.94.95.95.96.96.96.97.97.98.98.99.99 + 94.95.95.95.96.96.97.97.98.98.99.99 95.95.95.96.96.97.97.98.98.99.99 + 95.95.96.96.97.97.98.98.99.99 95.96.96.96.97.98.98.99.99 + 96.96.96.97.98.98.99.99 96.96.97.97.98.99.99 96.97.97.98.99.99 + 97.97.98.98.99 97.98.98.99} + +do_execsql_test 1.20.14.4 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {20.30.30.30.40.50.60.70.80.80.90.90.90 + 10.30.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.40.50.60.70.80.80.90.90.90 + 10.20.30.30.40.50.60.70.80.80.90.90.90 + 20.30.30.30.50.60.70.80.80.90.90.90 30.30.30.40.60.70.80.80.90.90.90 + 30.30.40.50.70.80.80.90.90.90 30.40.50.60.80.80.90.90.90 + 40.50.60.70.80.90.90.90 50.60.70.80.90.90.90 60.70.80.80.90.90 + 70.80.80.90.90 80.80.90.90 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.21.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.1.11.11.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 1.11.11.21.31.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.11.21.21.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 11.21.21.31.41.41.51.61.61.81.81.81.91.91.91.91.91 + 21.21.31.31.41.51.61.61.81.81.81.91.91.91.91.91 + 21.31.31.41.51.61.61.81.81.81.91.91.91.91.91 + 31.31.41.41.61.61.81.81.81.91.91.91.91.91 + 31.41.41.51.61.81.81.81.91.91.91.91.91 + 41.41.51.61.81.81.81.91.91.91.91.91 41.51.61.61.81.81.91.91.91.91.91 + 51.61.61.81.81.91.91.91.91.91 61.61.81.81.91.91.91.91.91 + 61.81.81.81.91.91.91.91 81.81.81.91.91.91.91 81.81.91.91.91.91 + 81.91.91.91.91 91.91.91.91 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.2.12.12.22.22.32.42.52.62.62.72.72.72.82 + 2.12.12.12.22.32.42.52.62.62.72.72.72.82 + 12.12.12.22.32.42.52.62.62.72.72.72.82 + 12.12.22.22.42.52.62.62.72.72.72.82 12.22.22.32.52.62.62.72.72.72.82 + 22.22.32.42.62.62.72.72.72.82 22.32.42.52.62.72.72.72.82 + 32.42.52.62.72.72.72.82 42.52.62.62.72.72.82 52.62.62.72.72.82 + 62.62.72.72.82 62.72.72.72 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.23.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.3.13.13.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 3.13.13.23.33.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.13.23.23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 13.23.23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 23.33.33.33.43.43.53.63.73.73.73.83.93.93.93 + 33.33.33.33.43.53.63.73.73.73.83.93.93.93 + 33.33.33.43.53.63.73.73.73.83.93.93.93 + 33.33.43.43.63.73.73.73.83.93.93.93 33.43.43.53.73.73.73.83.93.93.93 + 43.43.53.63.73.73.83.93.93.93 43.53.63.73.73.83.93.93.93 + 53.63.73.73.83.93.93.93 63.73.73.73.93.93.93 73.73.73.83.93.93 + 73.73.83.93.93 73.83.93.93 + 14.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.24.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.34.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 4.14.24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 14.24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 24.34.34.34.44.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.34.44.54.64.74.74.74.84.84.84.84.94 + 34.34.34.44.54.64.74.74.74.84.84.84.84.94 + 34.34.44.44.64.74.74.74.84.84.84.84.94 + 34.44.44.54.74.74.74.84.84.84.84.94 44.44.54.64.74.74.84.84.84.84.94 + 44.54.64.74.74.84.84.84.84.94 54.64.74.74.84.84.84.84.94 + 64.74.74.74.84.84.84.94 74.74.74.84.84.84.94 74.74.84.84.84.94 + 74.84.84.84.94 84.84.84.84 + 15.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.25.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 5.15.15.15.35.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.15.25.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.15.25.35.55.55.65.65.65.75.75.75.85.85.85.95.95.95 + 15.25.35.35.55.65.65.65.75.75.75.85.85.85.95.95.95 + 25.35.35.55.65.65.65.75.75.75.85.85.85.95.95.95 + 35.35.55.55.65.65.75.75.75.85.85.85.95.95.95 + 35.55.55.65.65.75.75.75.85.85.85.95.95.95 + 55.55.65.65.75.75.75.85.85.85.95.95.95 + 55.65.65.65.75.75.85.85.85.95.95.95 65.65.65.75.75.85.85.85.95.95.95 + 65.65.75.75.85.85.85.95.95.95 65.75.75.75.85.85.95.95.95 + 75.75.75.85.85.95.95.95 75.75.85.85.95.95.95 75.85.85.85.95.95 + 85.85.85.95.95 85.85.95.95 + 16.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.26.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 6.16.16.16.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.16.26.36.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.16.26.26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 16.26.26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 26.36.36.36.46.46.56.56.56.66.76.86.96.96.96 + 36.36.36.36.46.56.56.56.66.76.86.96.96.96 + 36.36.36.46.56.56.56.66.76.86.96.96.96 + 36.36.46.46.56.56.66.76.86.96.96.96 36.46.46.56.56.66.76.86.96.96.96 + 46.46.56.56.66.76.86.96.96.96 46.56.56.56.76.86.96.96.96 + 56.56.56.66.86.96.96.96 56.56.66.76.96.96.96 56.66.76.86.96.96 + 66.76.86.96.96 76.86.96.96 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.27.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.7.17.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.7.17.27.37.37.47.47.47.47.57.67.77.77.87.87.97.97 + 7.17.27.27.37.47.47.47.47.57.67.77.77.87.87.97.97 + 17.27.27.37.47.47.47.47.57.67.77.77.87.87.97.97 + 27.27.37.37.47.47.47.57.67.77.77.87.87.97.97 + 27.37.37.47.47.47.57.67.77.77.87.87.97.97 + 37.37.47.47.47.57.67.77.77.87.87.97.97 + 37.47.47.47.57.67.77.77.87.87.97.97 47.47.47.47.67.77.77.87.87.97.97 + 47.47.47.57.77.77.87.87.97.97 47.47.57.67.77.87.87.97.97 + 47.57.67.77.87.87.97.97 57.67.77.77.87.97.97 67.77.77.87.97.97 + 77.77.87.87.97 77.87.87.97 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.38.38.58.58.58.58.68.78.78.88.98.98 + 8.8.8.28.38.58.58.58.58.68.78.78.88.98.98 + 8.8.28.38.58.58.58.58.68.78.78.88.98.98 + 8.28.38.38.58.58.58.68.78.78.88.98.98 28.38.38.58.58.58.68.78.78.88.98.98 + 38.38.58.58.58.68.78.78.88.98.98 38.58.58.58.68.78.78.88.98.98 + 58.58.58.58.78.78.88.98.98 58.58.58.68.78.88.98.98 58.58.68.78.88.98.98 + 58.68.78.78.98.98 68.78.78.88.98 78.78.88.98 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.29.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.9.19.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.9.19.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 9.19.29.29.39.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 19.29.29.29.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.29.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.29.39.39.49.59.59.59.59.69.79.89.89.89.99.99 + 29.39.39.39.59.59.59.59.69.79.89.89.89.99.99 + 39.39.39.49.59.59.59.69.79.89.89.89.99.99 + 39.39.49.59.59.59.69.79.89.89.89.99.99 + 39.49.59.59.59.69.79.89.89.89.99.99 49.59.59.59.69.79.89.89.89.99.99 + 59.59.59.59.79.89.89.89.99.99 59.59.59.69.89.89.89.99.99 + 59.59.69.79.89.89.99.99 59.69.79.89.89.99.99 69.79.89.89.99.99 + 79.89.89.89.99 89.89.89.99} + +do_execsql_test 1.20.14.5 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) FROM t2 +} {40.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.80.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.20.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.40.30.80.90.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 40.30.80.20.60.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.80.20.90.70.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.20.90.60.80.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 20.90.60.70.90.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.60.70.80.30.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 60.70.80.90.50.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 70.80.90.30.10.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 80.90.30.50.30.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 90.30.50.10.81.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.50.10.30.91.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 50.10.30.81.61.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 10.30.81.91.91.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 30.81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.61.91.1.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.61.91.91.81.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.91.91.1.41.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.1.81.61.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.1.81.41.1.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.81.41.61.21.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.41.61.1.11.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.61.1.21.51.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 61.1.21.11.41.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 1.21.11.51.31.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.11.51.41.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.51.41.31.11.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 51.41.31.31.81.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 41.31.31.11.91.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.31.11.81.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 31.11.81.91.21.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 11.81.91.91.62.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 81.91.91.21.12.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.91.21.62.32.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 91.21.62.12.22.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 21.62.12.32.42.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.12.32.22.2.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.32.22.42.72.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 32.22.42.2.12.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.42.2.72.22.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 42.2.72.12.2.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.12.22.72.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.22.2.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.22.2.72.12.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 22.2.72.72.62.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 2.72.72.12.52.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.72.12.62.82.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 72.12.62.52.93.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 12.62.52.82.23.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 62.52.82.93.93.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 52.82.93.23.43.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 82.93.23.93.3.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.93.43.43.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.93.43.3.33.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.43.3.43.53.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.3.43.33.63.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.43.33.53.73.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 43.33.53.63.13.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.53.63.73.73.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 53.63.73.13.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 63.73.13.73.33.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.13.73.73.93.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.73.73.33.23.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.73.33.93.13.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 73.33.93.23.33.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.93.23.13.3.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 93.23.13.33.33.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 23.13.33.3.83.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 13.33.3.33.54.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.3.33.83.84.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 3.33.83.54.74.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 33.83.54.84.24.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 83.54.84.74.4.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 54.84.74.24.94.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.24.4.84.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.24.4.94.74.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 24.4.94.84.34.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 4.94.84.74.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 94.84.74.34.44.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.74.34.34.74.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.34.34.44.64.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.34.44.74.14.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.44.74.64.34.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.74.64.14.84.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 74.64.14.34.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 64.14.34.84.44.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 14.34.84.84.34.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.84.84.44.65.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.84.44.34.35.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 84.44.34.65.85.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 44.34.65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 34.65.35.85.55.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.85.85.15.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.85.85.55.25.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.85.55.15.75.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.55.15.25.95.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.15.25.75.65.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.25.75.95.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 25.75.95.65.35.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.95.65.65.5.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.65.65.35.15.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.65.35.5.95.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 65.35.5.15.55.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 35.5.15.95.75.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 5.15.95.55.85.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.55.75.75.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.55.75.85.15.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 55.75.85.75.95.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.85.75.15.96.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 85.75.15.95.46.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 75.15.95.96.6.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 15.95.96.46.46.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 95.96.46.6.16.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.6.46.16.86.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 6.46.16.16.56.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 46.16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.16.86.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.86.56.56.16.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 86.56.56.56.36.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.56.16.76.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.56.16.36.96.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 56.16.36.76.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 16.36.76.96.26.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.76.96.96.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 76.96.96.26.36.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.96.26.26.66.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 96.26.26.36.36.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.26.36.66.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 26.36.66.36.97.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.66.36.36.27.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 66.36.36.97.97.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.36.97.27.67.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 36.97.27.97.77.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.27.97.67.47.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.97.67.77.7.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 97.67.77.47.47.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 67.77.47.7.87.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.47.7.47.37.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.7.47.87.87.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.47.87.37.77.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.87.37.87.7.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.37.87.77.57.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.87.77.7.47.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 87.77.7.57.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 77.7.57.47.37.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.57.47.47.27.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 57.47.47.37.17.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.47.37.27.7.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 47.37.27.17.38.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 37.27.17.7.68.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 27.17.7.38.78.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 17.7.38.68.8.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 7.38.68.78.28.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.68.78.8.98.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 68.78.8.28.78.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.8.28.98.58.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.28.98.78.98.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 28.98.78.58.8.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.78.58.98.88.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 78.58.98.8.8.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.98.8.88.58.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 98.8.88.8.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.88.8.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 88.8.58.58.38.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 8.58.58.58.89.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.58.38.59.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.58.38.89.39.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 58.38.89.59.99.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 38.89.59.39.29.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 89.59.39.99.59.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.39.99.29.89.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 39.99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 99.29.59.89.29.9.79.49.59.29.59.19.39.9.9.99.69.39 + 29.59.89.89.9.79.49.59.29.59.19.39.9.9.99.69.39 + 59.89.89.29.79.49.59.29.59.19.39.9.9.99.69.39 + 89.89.29.9.49.59.29.59.19.39.9.9.99.69.39 + 89.29.9.79.59.29.59.19.39.9.9.99.69.39 + 29.9.79.49.29.59.19.39.9.9.99.69.39 9.79.49.59.59.19.39.9.9.99.69.39 + 79.49.59.29.19.39.9.9.99.69.39 49.59.29.59.39.9.9.99.69.39 + 59.29.59.19.9.9.99.69.39 29.59.19.39.9.99.69.39 59.19.39.9.99.69.39 + 19.39.9.9.69.39 39.9.9.99.39 9.9.99.69} + +do_execsql_test 1.20.14.6 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) FROM t2 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.14.7 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.14.8 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.14.9 { + SELECT group_concat(CAST(b AS TEXT), '.') OVER win2 + FROM t2 + WINDOW win1 AS (PARTITION BY b%2,a ORDER BY b%10), + win2 AS (win1 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) + ORDER BY 1 +} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} + {} {} {} {} {} {} {} {} {} {} {}} + +do_execsql_test 1.20.15.1 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE a%2=0) OVER win FROM t2 + WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) +} {190 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 190 89.96.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 189 96.38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 188 96.38.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 187 38.39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 186 38.39.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 185 39.91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 184 39.91.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 183 91.6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 182 91.6.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 181 6.97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 180 6.97.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 179 97.46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 178 97.46.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 177 46.54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 176 46.54.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 175 54.8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 174 54.8.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 173 8.29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 172 8.29.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 171 29.84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 170 29.84.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 169 84.23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 168 84.23.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 167 23.16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 166 23.16.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 165 16.65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 164 16.65.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 163 65.47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 162 65.47.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 161 47.86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 160 47.86.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 159 86.61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 158 86.61.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 157 61.85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 156 61.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 155 85.85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 154 85.85.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 153 85.59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 152 85.59.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 151 59.32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 150 59.32.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 149 32.3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 148 32.3.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 147 3.22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 146 3.22.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 145 22.55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 144 22.55.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 143 55.28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 142 55.28.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 141 28.25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 140 28.25.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 139 25.1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 138 25.1.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 137 1.40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 136 1.40.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 135 40.56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 134 40.56.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 133 56.75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 132 56.75.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 131 75.89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 130 75.89.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 129 89.76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 128 89.76.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 127 76.4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 126 76.4.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 125 4.42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 124 4.42.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 123 42.78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 122 42.78.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 121 78.29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 120 78.29.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 119 29.63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 118 29.63.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 117 63.87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 116 63.87.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 115 87.80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 114 87.80.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 113 80.72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 112 80.72.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 111 72.9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 110 72.9.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 109 9.73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 108 9.73.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 107 73.65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 106 73.65.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 105 65.58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 104 65.58.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 103 58.98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 102 58.98.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 101 98.21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 100 98.21.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 99 21.65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 98 21.65.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 97 65.5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 96 65.5.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 95 5.11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 94 5.11.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 93 11.87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 92 11.87.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 91 87.12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 90 87.12.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 89 12.20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 88 12.20.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 87 20.31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 86 20.31.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 85 31.95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 84 31.95.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 83 95.73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 82 95.73.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 81 73.88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 80 73.88.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 79 88.8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 78 88.8.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 77 8.49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 76 8.49.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 75 49.90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 74 49.90.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 73 90.96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 72 90.96.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 71 96.55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 70 96.55.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 69 55.77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 68 55.77.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 67 77.2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 66 77.2.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 65 2.85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 64 2.85.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 63 85.74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 62 85.74.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 61 74.70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 60 74.70.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 59 70.19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 58 70.19.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 57 19.26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 56 19.26.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 55 26.47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 54 26.47.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 53 47.90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 52 47.90.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 51 90.58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 50 90.58.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 49 58.9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 48 58.9.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 47 9.72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 46 9.72.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 45 72.33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 44 72.33.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 43 33.75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 42 33.75.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 41 75.81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 40 75.81.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 39 81.23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 38 81.23.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 37 23.13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 36 23.13.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 35 13.14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 34 13.14.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 33 14.91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 32 14.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 31 91.91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 30 91.91.36.3.69.52.50.10.33.39.58.38.83.82.7 + 29 91.15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 28 91.15.3.69.52.50.10.33.39.58.38.83.82.7 + 27 15.36.3.69.52.50.10.33.39.58.38.83.82.7 + 26 15.36.69.52.50.10.33.39.58.38.83.82.7 + 25 36.3.69.52.50.10.33.39.58.38.83.82.7 + 24 36.3.52.50.10.33.39.58.38.83.82.7 23 3.69.52.50.10.33.39.58.38.83.82.7 + 22 3.69.50.10.33.39.58.38.83.82.7 21 69.52.50.10.33.39.58.38.83.82.7 + 20 69.52.10.33.39.58.38.83.82.7 19 52.50.10.33.39.58.38.83.82.7 + 18 52.50.33.39.58.38.83.82.7 17 50.10.33.39.58.38.83.82.7 + 16 50.10.39.58.38.83.82.7 15 10.33.39.58.38.83.82.7 + 14 10.33.58.38.83.82.7 13 33.39.58.38.83.82.7 12 33.39.38.83.82.7 + 11 39.58.38.83.82.7 10 39.58.83.82.7 9 58.38.83.82.7 8 58.38.82.7 + 7 38.83.82.7 6 38.83.7 5 83.82.7 4 83.82} + +do_execsql_test 1.20.15.2 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE 0=1) OVER win FROM t2 + WINDOW win AS (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) +} {190 {} 190 {} 190 {} 190 {} 190 {} 189 {} 188 {} 187 {} + 186 {} 185 {} 184 {} 183 {} 182 {} 181 {} 180 {} 179 {} + 178 {} 177 {} 176 {} 175 {} 174 {} 173 {} 172 {} 171 {} + 170 {} 169 {} 168 {} 167 {} 166 {} 165 {} 164 {} 163 {} + 162 {} 161 {} 160 {} 159 {} 158 {} 157 {} 156 {} 155 {} + 154 {} 153 {} 152 {} 151 {} 150 {} 149 {} 148 {} 147 {} + 146 {} 145 {} 144 {} 143 {} 142 {} 141 {} 140 {} 139 {} + 138 {} 137 {} 136 {} 135 {} 134 {} 133 {} 132 {} 131 {} + 130 {} 129 {} 128 {} 127 {} 126 {} 125 {} 124 {} 123 {} + 122 {} 121 {} 120 {} 119 {} 118 {} 117 {} 116 {} 115 {} + 114 {} 113 {} 112 {} 111 {} 110 {} 109 {} 108 {} 107 {} + 106 {} 105 {} 104 {} 103 {} 102 {} 101 {} 100 {} 99 {} + 98 {} 97 {} 96 {} 95 {} 94 {} 93 {} 92 {} 91 {} 90 {} + 89 {} 88 {} 87 {} 86 {} 85 {} 84 {} 83 {} 82 {} 81 {} + 80 {} 79 {} 78 {} 77 {} 76 {} 75 {} 74 {} 73 {} 72 {} + 71 {} 70 {} 69 {} 68 {} 67 {} 66 {} 65 {} 64 {} 63 {} + 62 {} 61 {} 60 {} 59 {} 58 {} 57 {} 56 {} 55 {} 54 {} + 53 {} 52 {} 51 {} 50 {} 49 {} 48 {} 47 {} 46 {} 45 {} + 44 {} 43 {} 42 {} 41 {} 40 {} 39 {} 38 {} 37 {} 36 {} + 35 {} 34 {} 33 {} 32 {} 31 {} 30 {} 29 {} 28 {} 27 {} + 26 {} 25 {} 24 {} 23 {} 22 {} 21 {} 20 {} 19 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {}} + +do_execsql_test 1.20.15.3 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE 1=0) OVER win FROM t2 + WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) +} {19 {} 19 {} 19 {} 19 {} 19 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {} 18 {} 18 {} 18 {} 18 {} 18 {} 17 {} 16 {} 15 {} + 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} 7 {} 6 {} 5 {} + 4 {}} + +do_execsql_test 1.20.15.4 { + SELECT count(*) OVER win, group_concat(CAST(b AS TEXT), '.') + FILTER (WHERE a%2=0) OVER win FROM t2 + WINDOW win AS (PARTITION BY (a%10) ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP) +} {19 6.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.29.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.6.47.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.6.29.59.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 19 89.6.29.47.28.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 18 6.29.47.59.75.78.72.98.87.73.96.74.90.75.91.69.39.7 + 17 29.47.59.28.78.72.98.87.73.96.74.90.75.91.69.39.7 + 16 47.59.28.75.72.98.87.73.96.74.90.75.91.69.39.7 + 15 59.28.75.78.98.87.73.96.74.90.75.91.69.39.7 + 14 28.75.78.72.87.73.96.74.90.75.91.69.39.7 + 13 75.78.72.98.73.96.74.90.75.91.69.39.7 + 12 78.72.98.87.96.74.90.75.91.69.39.7 11 72.98.87.73.74.90.75.91.69.39.7 + 10 98.87.73.96.90.75.91.69.39.7 9 87.73.96.74.75.91.69.39.7 + 8 73.96.74.90.91.69.39.7 7 96.74.90.75.69.39.7 6 74.90.75.91.39.7 + 5 90.75.91.69.7 4 75.91.69.39 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 97.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.84.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.97.86.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.97.84.32.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 18 96.97.84.86.25.89.29.9.21.12.88.55.70.58.81.91.52.58 + 17 97.84.86.32.89.29.9.21.12.88.55.70.58.81.91.52.58 + 16 84.86.32.25.29.9.21.12.88.55.70.58.81.91.52.58 + 15 86.32.25.89.9.21.12.88.55.70.58.81.91.52.58 + 14 32.25.89.29.21.12.88.55.70.58.81.91.52.58 + 13 25.89.29.9.12.88.55.70.58.81.91.52.58 + 12 89.29.9.21.88.55.70.58.81.91.52.58 11 29.9.21.12.55.70.58.81.91.52.58 + 10 9.21.12.88.70.58.81.91.52.58 9 21.12.88.55.58.81.91.52.58 + 8 12.88.55.70.81.91.52.58 7 88.55.70.58.91.52.58 6 55.70.58.81.52.58 + 5 70.58.81.91.58 4 58.81.91.52 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 46.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.23.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.46.61.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.46.23.3.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 18 38.46.23.61.1.76.63.73.65.20.8.77.19.9.23.15.50.38 + 17 46.23.61.3.76.63.73.65.20.8.77.19.9.23.15.50.38 + 16 23.61.3.1.63.73.65.20.8.77.19.9.23.15.50.38 + 15 61.3.1.76.73.65.20.8.77.19.9.23.15.50.38 + 14 3.1.76.63.65.20.8.77.19.9.23.15.50.38 + 13 1.76.63.73.20.8.77.19.9.23.15.50.38 + 12 76.63.73.65.8.77.19.9.23.15.50.38 11 63.73.65.20.77.19.9.23.15.50.38 + 10 73.65.20.8.19.9.23.15.50.38 9 65.20.8.77.9.23.15.50.38 + 8 20.8.77.19.23.15.50.38 7 8.77.19.9.15.50.38 6 77.19.9.23.50.38 + 5 19.9.23.15.38 4 9.23.15.50 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 54.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.16.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.54.85.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.54.16.22.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 18 39.54.16.85.40.4.87.65.5.31.49.2.26.72.13.36.10.83 + 17 54.16.85.22.4.87.65.5.31.49.2.26.72.13.36.10.83 + 16 16.85.22.40.87.65.5.31.49.2.26.72.13.36.10.83 + 15 85.22.40.4.65.5.31.49.2.26.72.13.36.10.83 + 14 22.40.4.87.5.31.49.2.26.72.13.36.10.83 + 13 40.4.87.65.31.49.2.26.72.13.36.10.83 + 12 4.87.65.5.49.2.26.72.13.36.10.83 11 87.65.5.31.2.26.72.13.36.10.83 + 10 65.5.31.49.26.72.13.36.10.83 9 5.31.49.2.72.13.36.10.83 + 8 31.49.2.26.13.36.10.83 7 49.2.26.72.36.10.83 6 2.26.72.13.10.83 + 5 26.72.13.36.83 4 72.13.36.10 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {} + 18 8.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.65.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.8.85.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.8.65.55.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 18 91.8.65.85.56.42.80.58.11.95.90.85.47.33.14.3.33.82 + 17 8.65.85.55.42.80.58.11.95.90.85.47.33.14.3.33.82 + 16 65.85.55.56.80.58.11.95.90.85.47.33.14.3.33.82 + 15 85.55.56.42.58.11.95.90.85.47.33.14.3.33.82 + 14 55.56.42.80.11.95.90.85.47.33.14.3.33.82 + 13 56.42.80.58.95.90.85.47.33.14.3.33.82 + 12 42.80.58.11.90.85.47.33.14.3.33.82 11 80.58.11.95.85.47.33.14.3.33.82 + 10 58.11.95.90.47.33.14.3.33.82 9 11.95.90.85.33.14.3.33.82 + 8 95.90.85.47.14.3.33.82 7 90.85.47.33.3.33.82 6 85.47.33.14.33.82 + 5 47.33.14.3.82 4 33.14.3.33 18 {} 18 {} 18 {} 18 {} 18 {} + 17 {} 16 {} 15 {} 14 {} 13 {} 12 {} 11 {} 10 {} 9 {} 8 {} + 7 {} 6 {} 5 {} 4 {}} finish_test diff --git a/test/window4.tcl b/test/window4.tcl index 33b3a8c0e8..a0229db6b8 100644 --- a/test/window4.tcl +++ b/test/window4.tcl @@ -1,4 +1,4 @@ -# 2018 May 19 +## 2018 May 19 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: diff --git a/test/window4.test b/test/window4.test index e914c7826c..1fb5b5d82a 100644 --- a/test/window4.test +++ b/test/window4.test @@ -150,7 +150,8 @@ do_execsql_test 2.4.1 { SELECT group_concat(b, '.') OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t4 -} {A.B.C.D.E.F.G.H.I.J B.C.D.E.F.G.H.I.J C.D.E.F.G.H.I.J D.E.F.G.H.I.J E.F.G.H.I.J F.G.H.I.J G.H.I.J H.I.J I.J J} +} {A.B.C.D.E.F.G.H.I.J B.C.D.E.F.G.H.I.J C.D.E.F.G.H.I.J D.E.F.G.H.I.J + E.F.G.H.I.J F.G.H.I.J G.H.I.J H.I.J I.J J} do_execsql_test 3.0 { DROP TABLE IF EXISTS t5; @@ -1224,10 +1225,12 @@ do_test 9.3 { lappend myres [format %.4f [set r]] } set res2 {1.0000 0.0000 1.0000 0.0000 1.0000 0.0000 4.0000 0.0000 4.0000 0.0000 6.0000 0.0000 7.0000 0.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1247,10 +1250,12 @@ do_test 9.6 { lappend myres [format %.4f [set r]] } set res2 {0.0000 0.0000 0.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} @@ -1262,10 +1267,12 @@ do_test 9.7 { lappend myres [format %.4f [set r]] } set res2 {1.0000 1.0000 1.0000} + set i 0 foreach r [set myres] r2 [set res2] { if {[set r]<([set r2]-0.0001) || [set r]>([set r2]+0.0001)} { error "list element [set i] does not match: got=[set r] expected=[set r2]" } + incr i } set {} {} } {} diff --git a/test/window6.test b/test/window6.test index 06cebcf1a8..d732dea124 100644 --- a/test/window6.test +++ b/test/window6.test @@ -219,17 +219,17 @@ do_execsql_test 9.0 { } { 1 1 2 1,2 3 1,2,3 4 2,3,4 5 3,4,5 } -do_catchsql_test 9.1 { - WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<5) - SELECT x, group_concat(x) OVER (ORDER BY x RANGE 2 PRECEDING) - FROM c; -} {1 {RANGE must use only UNBOUNDED or CURRENT ROW}} - -do_catchsql_test 9.2 { - WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<5) - SELECT x, group_concat(x) OVER (ORDER BY x RANGE BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING) - FROM c; -} {1 {RANGE must use only UNBOUNDED or CURRENT ROW}} +#do_catchsql_test 9.1 { +# WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<5) +# SELECT x, group_concat(x) OVER (ORDER BY x RANGE 2 PRECEDING) +# FROM c; +#} {1 {RANGE must use only UNBOUNDED or CURRENT ROW}} +# +#do_catchsql_test 9.2 { +# WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<5) +# SELECT x, group_concat(x) OVER (ORDER BY x RANGE BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING) +# FROM c; +#} {1 {RANGE must use only UNBOUNDED or CURRENT ROW}} do_catchsql_test 9.3 { WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x+1 FROM c WHERE x<5) @@ -262,7 +262,7 @@ foreach {tn frame} { SELECT count() OVER ( ORDER BY x ROWS $frame ) FROM c; - " {1 {unsupported frame delimiter for ROWS}} + " {1 {unsupported frame specification}} } do_catchsql_test 9.8.1 { @@ -337,4 +337,35 @@ do_execsql_test 11.2 { 25 {} 90 30 thirty 150 30 thirty 150 50 {} 200 } +do_execsql_test 11.3.1 { + SELECT a, sum(a) OVER win FROM t1 + WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) +} { + 10 10 15 25 20 45 20 65 25 90 30 120 30 150 50 200 +} +do_execsql_test 11.3.2 { + SELECT a, sum(a) OVER win FROM t1 + WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 0 FOLLOWING) +} { + 10 10 15 25 20 45 20 65 25 90 30 120 30 150 50 200 +} +do_execsql_test 11.3.3 { + SELECT a, sum(a) OVER win FROM t1 + WINDOW win AS (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING) +} { + 10 10 15 25 20 45 20 65 25 90 30 120 30 150 50 200 +} + +do_execsql_test 11.4.1 { + SELECT y, group_concat(y, '.') OVER win FROM t3 + WINDOW win AS ( + ORDER BY y RANGE BETWEEN UNBOUNDED PRECEDING AND 10 PRECEDING + ); +} { + fifteen fifteen + ten fifteen.ten + thirty fifteen.ten.thirty +} + finish_test + diff --git a/test/window7.tcl b/test/window7.tcl new file mode 100644 index 0000000000..56fc60dd7f --- /dev/null +++ b/test/window7.tcl @@ -0,0 +1,91 @@ +# 2018 May 19 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# + +source [file join [file dirname $argv0] pg_common.tcl] + +#========================================================================= + +start_test window7 "2019 March 01" +ifcapable !windowfunc + +execsql_test 1.0 { + DROP TABLE IF EXISTS t3; + CREATE TABLE t3(a INTEGER, b INTEGER); + INSERT INTO t3 VALUES + (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), + (9, 9), (0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), + (7, 17), (8, 18), (9, 19), (0, 20), (1, 21), (2, 22), (3, 23), (4, 24), + (5, 25), (6, 26), (7, 27), (8, 28), (9, 29), (0, 30), (1, 31), (2, 32), + (3, 33), (4, 34), (5, 35), (6, 36), (7, 37), (8, 38), (9, 39), (0, 40), + (1, 41), (2, 42), (3, 43), (4, 44), (5, 45), (6, 46), (7, 47), (8, 48), + (9, 49), (0, 50), (1, 51), (2, 52), (3, 53), (4, 54), (5, 55), (6, 56), + (7, 57), (8, 58), (9, 59), (0, 60), (1, 61), (2, 62), (3, 63), (4, 64), + (5, 65), (6, 66), (7, 67), (8, 68), (9, 69), (0, 70), (1, 71), (2, 72), + (3, 73), (4, 74), (5, 75), (6, 76), (7, 77), (8, 78), (9, 79), (0, 80), + (1, 81), (2, 82), (3, 83), (4, 84), (5, 85), (6, 86), (7, 87), (8, 88), + (9, 89), (0, 90), (1, 91), (2, 92), (3, 93), (4, 94), (5, 95), (6, 96), + (7, 97), (8, 98), (9, 99), (0, 100); +} + +execsql_test 1.1 { + SELECT a, sum(b) FROM t3 GROUP BY a ORDER BY 1; +} + +execsql_test 1.2 { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN CURRENT ROW AND CURRENT ROW + ) FROM t3 ORDER BY 1; +} + +execsql_test 1.3 { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN 0 PRECEDING AND 0 FOLLOWING + ) FROM t3 ORDER BY 1; +} + +execsql_test 1.4 { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING + ) FROM t3 ORDER BY 1; +} + +execsql_test 1.5 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING + ) FROM t3 ORDER BY 1; +} + +execsql_test 1.6 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 2 PRECEDING AND 2 FOLLOWING + ) FROM t3 ORDER BY 1; +} + +execsql_test 1.7 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 2 PRECEDING AND 1 FOLLOWING + ) FROM t3 ORDER BY 1; +} + +execsql_test 1.8.1 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 0 PRECEDING AND 1 FOLLOWING + ) FROM t3 ORDER BY 1; +} +execsql_test 1.8.2 { + SELECT a, sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 0 PRECEDING AND 1 FOLLOWING + ) FROM t3 ORDER BY 1; +} + +finish_test + diff --git a/test/window7.test b/test/window7.test new file mode 100644 index 0000000000..fd04e23c43 --- /dev/null +++ b/test/window7.test @@ -0,0 +1,94 @@ +# 2019 March 01 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# This file implements regression tests for SQLite library. +# + +#################################################### +# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED! +#################################################### + +set testdir [file dirname $argv0] +source $testdir/tester.tcl +set testprefix window7 + +ifcapable !windowfunc { finish_test ; return } +do_execsql_test 1.0 { + DROP TABLE IF EXISTS t3; + CREATE TABLE t3(a INTEGER, b INTEGER); + INSERT INTO t3 VALUES + (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), + (9, 9), (0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), + (7, 17), (8, 18), (9, 19), (0, 20), (1, 21), (2, 22), (3, 23), (4, 24), + (5, 25), (6, 26), (7, 27), (8, 28), (9, 29), (0, 30), (1, 31), (2, 32), + (3, 33), (4, 34), (5, 35), (6, 36), (7, 37), (8, 38), (9, 39), (0, 40), + (1, 41), (2, 42), (3, 43), (4, 44), (5, 45), (6, 46), (7, 47), (8, 48), + (9, 49), (0, 50), (1, 51), (2, 52), (3, 53), (4, 54), (5, 55), (6, 56), + (7, 57), (8, 58), (9, 59), (0, 60), (1, 61), (2, 62), (3, 63), (4, 64), + (5, 65), (6, 66), (7, 67), (8, 68), (9, 69), (0, 70), (1, 71), (2, 72), + (3, 73), (4, 74), (5, 75), (6, 76), (7, 77), (8, 78), (9, 79), (0, 80), + (1, 81), (2, 82), (3, 83), (4, 84), (5, 85), (6, 86), (7, 87), (8, 88), + (9, 89), (0, 90), (1, 91), (2, 92), (3, 93), (4, 94), (5, 95), (6, 96), + (7, 97), (8, 98), (9, 99), (0, 100); +} {} + +do_execsql_test 1.1 { + SELECT a, sum(b) FROM t3 GROUP BY a ORDER BY 1; +} {0 550 1 460 2 470 3 480 4 490 5 500 6 510 7 520 8 530 9 540} + +do_execsql_test 1.2 { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN CURRENT ROW AND CURRENT ROW + ) FROM t3 ORDER BY 1; +} {0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540} + +do_execsql_test 1.3 { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN 0 PRECEDING AND 0 FOLLOWING + ) FROM t3 ORDER BY 1; +} {0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540} + +do_execsql_test 1.4 { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING + ) FROM t3 ORDER BY 1; +} {0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590} + +do_execsql_test 1.5 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING + ) FROM t3 ORDER BY 1; +} {0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 1 460 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 2 470 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 3 480 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 4 490 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 5 500 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 6 510 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 7 520 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 8 530 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540} + +do_execsql_test 1.6 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 2 PRECEDING AND 2 FOLLOWING + ) FROM t3 ORDER BY 1; +} {0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 0 1480 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 1 1960 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 2 2450 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 3 2400 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 4 2450 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 5 2500 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 6 2550 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 7 2600 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590} + +do_execsql_test 1.7 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 2 PRECEDING AND 1 FOLLOWING + ) FROM t3 ORDER BY 1; +} {0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 1 1480 1 1480 1 1480 1 1480 1 1480 1 1480 1 1480 1 1480 1 1480 1 1480 2 1960 2 1960 2 1960 2 1960 2 1960 2 1960 2 1960 2 1960 2 1960 2 1960 3 1900 3 1900 3 1900 3 1900 3 1900 3 1900 3 1900 3 1900 3 1900 3 1900 4 1940 4 1940 4 1940 4 1940 4 1940 4 1940 4 1940 4 1940 4 1940 4 1940 5 1980 5 1980 5 1980 5 1980 5 1980 5 1980 5 1980 5 1980 5 1980 5 1980 6 2020 6 2020 6 2020 6 2020 6 2020 6 2020 6 2020 6 2020 6 2020 6 2020 7 2060 7 2060 7 2060 7 2060 7 2060 7 2060 7 2060 7 2060 7 2060 7 2060 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 8 2100 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590 9 1590} + +do_execsql_test 1.8.1 { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 0 PRECEDING AND 1 FOLLOWING + ) FROM t3 ORDER BY 1; +} {0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 0 1010 1 930 1 930 1 930 1 930 1 930 1 930 1 930 1 930 1 930 1 930 2 950 2 950 2 950 2 950 2 950 2 950 2 950 2 950 2 950 2 950 3 970 3 970 3 970 3 970 3 970 3 970 3 970 3 970 3 970 3 970 4 990 4 990 4 990 4 990 4 990 4 990 4 990 4 990 4 990 4 990 5 1010 5 1010 5 1010 5 1010 5 1010 5 1010 5 1010 5 1010 5 1010 5 1010 6 1030 6 1030 6 1030 6 1030 6 1030 6 1030 6 1030 6 1030 6 1030 6 1030 7 1050 7 1050 7 1050 7 1050 7 1050 7 1050 7 1050 7 1050 7 1050 7 1050 8 1070 8 1070 8 1070 8 1070 8 1070 8 1070 8 1070 8 1070 8 1070 8 1070 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540 9 540} + +do_execsql_test 1.8.2 { + SELECT a, sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 0 PRECEDING AND 1 FOLLOWING + ) FROM t3 ORDER BY 1; +} {0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 0 550 1 1010 1 1010 1 1010 1 1010 1 1010 1 1010 1 1010 1 1010 1 1010 1 1010 2 930 2 930 2 930 2 930 2 930 2 930 2 930 2 930 2 930 2 930 3 950 3 950 3 950 3 950 3 950 3 950 3 950 3 950 3 950 3 950 4 970 4 970 4 970 4 970 4 970 4 970 4 970 4 970 4 970 4 970 5 990 5 990 5 990 5 990 5 990 5 990 5 990 5 990 5 990 5 990 6 1010 6 1010 6 1010 6 1010 6 1010 6 1010 6 1010 6 1010 6 1010 6 1010 7 1030 7 1030 7 1030 7 1030 7 1030 7 1030 7 1030 7 1030 7 1030 7 1030 8 1050 8 1050 8 1050 8 1050 8 1050 8 1050 8 1050 8 1050 8 1050 8 1050 9 1070 9 1070 9 1070 9 1070 9 1070 9 1070 9 1070 9 1070 9 1070 9 1070} + +finish_test diff --git a/test/window8.tcl b/test/window8.tcl new file mode 100644 index 0000000000..df1fd78ab7 --- /dev/null +++ b/test/window8.tcl @@ -0,0 +1,299 @@ +# 2018 May 19 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# + +source [file join [file dirname $argv0] pg_common.tcl] + +#========================================================================= + +start_test window8 "2019 March 01" +ifcapable !windowfunc + +execsql_test 1.0 { + DROP TABLE IF EXISTS t3; + CREATE TABLE t3(a TEXT, b TEXT, c INTEGER); + INSERT INTO t3 VALUES + ('HH', 'bb', 355), ('CC', 'aa', 158), ('BB', 'aa', 399), + ('FF', 'bb', 938), ('HH', 'aa', 480), ('FF', 'bb', 870), + ('JJ', 'aa', 768), ('JJ', 'aa', 899), ('GG', 'bb', 929), + ('II', 'bb', 421), ('GG', 'bb', 844), ('FF', 'bb', 574), + ('CC', 'bb', 822), ('GG', 'bb', 938), ('BB', 'aa', 660), + ('HH', 'aa', 979), ('BB', 'bb', 792), ('DD', 'aa', 845), + ('JJ', 'bb', 354), ('FF', 'bb', 295), ('JJ', 'aa', 234), + ('BB', 'bb', 840), ('AA', 'aa', 934), ('EE', 'aa', 113), + ('AA', 'bb', 309), ('BB', 'aa', 412), ('AA', 'aa', 911), + ('AA', 'bb', 572), ('II', 'aa', 398), ('II', 'bb', 250), + ('II', 'aa', 652), ('BB', 'bb', 633), ('AA', 'aa', 239), + ('FF', 'aa', 670), ('BB', 'bb', 705), ('HH', 'bb', 963), + ('CC', 'bb', 346), ('II', 'bb', 671), ('BB', 'aa', 247), + ('AA', 'aa', 223), ('GG', 'aa', 480), ('HH', 'aa', 790), + ('FF', 'aa', 208), ('BB', 'bb', 711), ('EE', 'aa', 777), + ('DD', 'bb', 716), ('CC', 'aa', 759), ('CC', 'aa', 430), + ('CC', 'aa', 607), ('DD', 'bb', 794), ('GG', 'aa', 148), + ('GG', 'aa', 634), ('JJ', 'bb', 257), ('DD', 'bb', 959), + ('FF', 'bb', 726), ('BB', 'aa', 762), ('JJ', 'bb', 336), + ('GG', 'aa', 335), ('HH', 'bb', 330), ('GG', 'bb', 160), + ('JJ', 'bb', 839), ('FF', 'aa', 618), ('BB', 'aa', 393), + ('EE', 'bb', 629), ('FF', 'aa', 667), ('AA', 'bb', 870), + ('FF', 'bb', 102), ('JJ', 'aa', 113), ('DD', 'aa', 224), + ('AA', 'bb', 627), ('HH', 'bb', 730), ('II', 'bb', 443), + ('HH', 'bb', 133), ('EE', 'bb', 252), ('II', 'bb', 805), + ('BB', 'bb', 786), ('EE', 'bb', 768), ('HH', 'bb', 683), + ('DD', 'bb', 238), ('DD', 'aa', 256); +} + +foreach {tn frame} { + 1 { GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING } + 2 { GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW } + 3 { GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING } + 4 { GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING } + 5 { GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING } + 6 { GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING } + 7 { GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING } + 8 { GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING } + 9 { GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW } + 10 { GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING } + 11 { GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING } + 12 { GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING } + 13 { GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING } + 14 { GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING } + 15 { GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING } + 16 { GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING } + 17 { GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING } + 18 { GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING } + 19 { GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING } + +} { + execsql_test 1.$tn.1 " + SELECT a, b, sum(c) OVER (ORDER BY a $frame) FROM t3 ORDER BY 1, 2, 3; + " + execsql_test 1.$tn.2 " + SELECT a, b, sum(c) OVER (ORDER BY a,b $frame) FROM t3 ORDER BY 1, 2, 3; + " + execsql_test 1.$tn.3 " + SELECT a, b, rank() OVER (ORDER BY a $frame) FROM t3 ORDER BY 1, 2, 3; + " + execsql_test 1.$tn.4 " + SELECT a, b, max(c) OVER (ORDER BY a,b $frame) FROM t3 ORDER BY 1, 2, 3; + " + execsql_test 1.$tn.5 " + SELECT a, b, min(c) OVER (ORDER BY a,b $frame) FROM t3 ORDER BY 1, 2, 3; + " + + set f2 "$frame EXCLUDE CURRENT ROW" + + execsql_test 1.$tn.6 " + SELECT a, b, sum(c) OVER (ORDER BY a $f2) FROM t3 ORDER BY 1, 2, 3; + " + execsql_test 1.$tn.7 " + SELECT a, b, sum(c) OVER (ORDER BY a,b $f2) FROM t3 ORDER BY 1, 2, 3; + " + + execsql_test 1.$tn.8 " + SELECT a, b, + sum(c) OVER (ORDER BY a $f2), + sum(c) OVER (ORDER BY a $frame), + sum(c) OVER (ORDER BY a,b $f2), + sum(c) OVER (ORDER BY a,b $frame) + FROM t3 ORDER BY 1, 2, 3; + " +} + + +foreach {tn ex} { + 1 { EXCLUDE NO OTHERS } + 2 { EXCLUDE CURRENT ROW } + 3 { EXCLUDE GROUP } + 4 { EXCLUDE TIES } +} { + execsql_test 2.$tn.1 " + SELECT row_number() OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING $ex + ) + " + + execsql_test 2.$tn.2 " + SELECT nth_value(c, 14) OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING $ex + ) + " + + execsql_test 2.$tn.3 " + SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW $ex + ) ORDER BY a, b, c; + " +} + +========== + +execsql_test 3.0 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a REAL, b INTEGER); + INSERT INTO t1 VALUES + (5, 10), (10, 20), (13, 26), (13, 26), + (15, 30), (20, 40), (22,80), (30, 90); +} + +foreach {tn frame} { + 1 { ORDER BY a RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING } + 2 { ORDER BY a RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING } + 3 { ORDER BY a RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING } + 4 { ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING } + 5 { ORDER BY a DESC RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING } + 6 { ORDER BY a DESC RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING } + + 7 { ORDER BY a RANGE BETWEEN 5.1 PRECEDING AND 5.3 FOLLOWING } + 8 { ORDER BY a RANGE BETWEEN 10.2 PRECEDING AND 5.4 PRECEDING } + 9 { ORDER BY a RANGE BETWEEN 2.6 FOLLOWING AND 3.5 FOLLOWING } + 10 { ORDER BY a DESC RANGE BETWEEN 5.7 PRECEDING AND 5.8 FOLLOWING } + 11 { ORDER BY a DESC RANGE BETWEEN UNBOUNDED PRECEDING AND 5.9 PRECEDING } + 12 { ORDER BY a DESC RANGE BETWEEN 2.1 FOLLOWING AND UNBOUNDED FOLLOWING } + 13 { ORDER BY a RANGE 5.1 PRECEDING } +} { + execsql_test 3.$tn " + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ($frame) + " +} + +========== + +execsql_test 4.0 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a INTEGER, b INTEGER); + INSERT INTO t1 VALUES + (NULL, 1), (NULL, 2), (NULL, 3), (10, 4), (10, 5); +} + +execsql_test 4.1.1 { + SELECT sum(b) OVER ( + ORDER BY a RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1; +} +execsql_test 4.1.2 { + SELECT sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1; +} + +execsql_test 4.2.1 { + SELECT sum(b) OVER ( + ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1 NULLS FIRST; +} + +execsql_test 4.2.2 { + SELECT sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1 NULLS FIRST; +} + +execsql_test 4.3.1 { + SELECT sum(b) OVER ( + ORDER BY a NULLS FIRST RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1 NULLS FIRST; +} + +execsql_test 4.4.1 { + SELECT sum(b) OVER ( + ORDER BY a NULLS FIRST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 NULLS FIRST; +} + +execsql_test 4.4.2 { + SELECT sum(b) OVER ( + ORDER BY a DESC NULLS LAST ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 NULLS FIRST; +} + +========== + +execsql_test 5.0 { + INSERT INTO t3 VALUES + (NULL, 'bb', 355), (NULL, 'cc', 158), (NULL, 'aa', 399), + ('JJ', NULL, 839), ('FF', NULL, 618), ('BB', NULL, 393), + (NULL, 'bb', 629), (NULL, NULL, 667), (NULL, NULL, 870); +} + +foreach {tn ex} { + 1 { EXCLUDE NO OTHERS } + 2 { EXCLUDE CURRENT ROW } + 3 { EXCLUDE GROUP } + 4 { EXCLUDE TIES } +} { + foreach {tn2 frame} { + 1 { RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING } + 2 { ORDER BY a NULLS FIRST + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING } + 3 { PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING } + 4 { ORDER BY a NULLS FIRST GROUPS 6 PRECEDING } + 5 { ORDER BY c NULLS FIRST RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING } + 6 { ORDER BY c NULLS FIRST RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING } + 7 { ORDER BY c NULLS FIRST, b NULLS FIRST, a NULLS FIRST + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING } + } { + execsql_test 5.$tn.$tn2.1 " + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( $frame $ex ) + ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST + " + + execsql_test 5.$tn.$tn2.2 " + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( $frame $ex ) + ORDER BY 1 NULLS FIRST, 2 NULLS FIRST, 3 NULLS FIRST + " + } +} + +========== + +execsql_test 6.0 { + DROP TABLE IF EXISTS t2; + CREATE TABLE t2(a TEXT, b INTEGER); + INSERT INTO t2 VALUES('A', NULL); + INSERT INTO t2 VALUES('B', NULL); + INSERT INTO t2 VALUES('C', 1); +} + +execsql_test 6.1 { + SELECT string_agg(a, '.') OVER ( + ORDER BY b NULLS FIRST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING + ) + FROM t2 +} + +execsql_test 6.2 { + SELECT string_agg(a, '.') OVER ( + ORDER BY b DESC NULLS LAST RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING + ) + FROM t2 +} + + +finish_test + + diff --git a/test/window8.test b/test/window8.test new file mode 100644 index 0000000000..829bd0b252 --- /dev/null +++ b/test/window8.test @@ -0,0 +1,4875 @@ +# 2019 March 01 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# This file implements regression tests for SQLite library. +# + +#################################################### +# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED! +#################################################### + +set testdir [file dirname $argv0] +source $testdir/tester.tcl +set testprefix window8 + +ifcapable !windowfunc { finish_test ; return } +do_execsql_test 1.0 { + DROP TABLE IF EXISTS t3; + CREATE TABLE t3(a TEXT, b TEXT, c INTEGER); + INSERT INTO t3 VALUES + ('HH', 'bb', 355), ('CC', 'aa', 158), ('BB', 'aa', 399), + ('FF', 'bb', 938), ('HH', 'aa', 480), ('FF', 'bb', 870), + ('JJ', 'aa', 768), ('JJ', 'aa', 899), ('GG', 'bb', 929), + ('II', 'bb', 421), ('GG', 'bb', 844), ('FF', 'bb', 574), + ('CC', 'bb', 822), ('GG', 'bb', 938), ('BB', 'aa', 660), + ('HH', 'aa', 979), ('BB', 'bb', 792), ('DD', 'aa', 845), + ('JJ', 'bb', 354), ('FF', 'bb', 295), ('JJ', 'aa', 234), + ('BB', 'bb', 840), ('AA', 'aa', 934), ('EE', 'aa', 113), + ('AA', 'bb', 309), ('BB', 'aa', 412), ('AA', 'aa', 911), + ('AA', 'bb', 572), ('II', 'aa', 398), ('II', 'bb', 250), + ('II', 'aa', 652), ('BB', 'bb', 633), ('AA', 'aa', 239), + ('FF', 'aa', 670), ('BB', 'bb', 705), ('HH', 'bb', 963), + ('CC', 'bb', 346), ('II', 'bb', 671), ('BB', 'aa', 247), + ('AA', 'aa', 223), ('GG', 'aa', 480), ('HH', 'aa', 790), + ('FF', 'aa', 208), ('BB', 'bb', 711), ('EE', 'aa', 777), + ('DD', 'bb', 716), ('CC', 'aa', 759), ('CC', 'aa', 430), + ('CC', 'aa', 607), ('DD', 'bb', 794), ('GG', 'aa', 148), + ('GG', 'aa', 634), ('JJ', 'bb', 257), ('DD', 'bb', 959), + ('FF', 'bb', 726), ('BB', 'aa', 762), ('JJ', 'bb', 336), + ('GG', 'aa', 335), ('HH', 'bb', 330), ('GG', 'bb', 160), + ('JJ', 'bb', 839), ('FF', 'aa', 618), ('BB', 'aa', 393), + ('EE', 'bb', 629), ('FF', 'aa', 667), ('AA', 'bb', 870), + ('FF', 'bb', 102), ('JJ', 'aa', 113), ('DD', 'aa', 224), + ('AA', 'bb', 627), ('HH', 'bb', 730), ('II', 'bb', 443), + ('HH', 'bb', 133), ('EE', 'bb', 252), ('II', 'bb', 805), + ('BB', 'bb', 786), ('EE', 'bb', 768), ('HH', 'bb', 683), + ('DD', 'bb', 238), ('DD', 'aa', 256); +} {} + +do_execsql_test 1.1.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 + BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 + CC bb 12025 CC bb 12025 DD aa 15147 DD aa 15147 DD aa 15147 + DD bb 15147 DD bb 15147 DD bb 15147 DD bb 15147 EE aa 19179 + EE aa 19179 EE bb 19179 EE bb 19179 EE bb 19179 FF aa 21718 + FF aa 21718 FF aa 21718 FF aa 21718 FF bb 21718 FF bb 21718 + FF bb 21718 FF bb 21718 FF bb 21718 FF bb 21718 GG aa 27386 + GG aa 27386 GG aa 27386 GG aa 27386 GG bb 27386 GG bb 27386 + GG bb 27386 GG bb 27386 HH aa 31854 HH aa 31854 HH aa 31854 + HH bb 31854 HH bb 31854 HH bb 31854 HH bb 31854 HH bb 31854 + HH bb 31854 II aa 37297 II aa 37297 II bb 37297 II bb 37297 + II bb 37297 II bb 37297 II bb 37297 JJ aa 40937 JJ aa 40937 + JJ aa 40937 JJ aa 40937 JJ bb 40937 JJ bb 40937 JJ bb 40937 + JJ bb 40937} + +do_execsql_test 1.1.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 2307 AA bb 2307 + AA bb 2307 AA bb 2307 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB aa 4685 BB bb 7558 BB bb 7558 BB bb 7558 BB bb 7558 + BB bb 7558 BB bb 7558 CC aa 12025 CC aa 12025 CC aa 12025 + CC aa 12025 CC bb 13979 CC bb 13979 DD aa 15147 DD aa 15147 + DD aa 15147 DD bb 16472 DD bb 16472 DD bb 16472 DD bb 16472 + EE aa 19179 EE aa 19179 EE bb 20069 EE bb 20069 EE bb 20069 + FF aa 21718 FF aa 21718 FF aa 21718 FF aa 21718 FF bb 23881 + FF bb 23881 FF bb 23881 FF bb 23881 FF bb 23881 FF bb 23881 + GG aa 27386 GG aa 27386 GG aa 27386 GG aa 27386 GG bb 28983 + GG bb 28983 GG bb 28983 GG bb 28983 HH aa 31854 HH aa 31854 + HH aa 31854 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 + HH bb 34103 HH bb 34103 II aa 37297 II aa 37297 II bb 38347 + II bb 38347 II bb 38347 II bb 38347 II bb 38347 JJ aa 40937 + JJ aa 40937 JJ aa 40937 JJ aa 40937 JJ bb 42951 JJ bb 42951 + JJ bb 42951 JJ bb 42951} + +do_execsql_test 1.1.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.1.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 934 BB bb 934 BB bb 934 BB bb 934 + BB bb 934 BB bb 934 CC aa 934 CC aa 934 CC aa 934 CC aa 934 + CC bb 934 CC bb 934 DD aa 934 DD aa 934 DD aa 934 DD bb 934 + DD bb 934 DD bb 934 DD bb 934 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 959 FF aa 959 FF aa 959 FF aa 959 + FF bb 959 FF bb 959 FF bb 959 FF bb 959 FF bb 959 FF bb 959 + GG aa 959 GG aa 959 GG aa 959 GG aa 959 GG bb 959 GG bb 959 + GG bb 959 GG bb 959 HH aa 959 HH aa 959 HH aa 959 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 979 II bb 979 II bb 979 II bb 979 II bb 979 + JJ aa 979 JJ aa 979 JJ aa 979 JJ aa 979 JJ bb 979 JJ bb 979 + JJ bb 979 JJ bb 979} + +do_execsql_test 1.1.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 223 BB bb 223 BB bb 223 BB bb 223 + BB bb 223 BB bb 223 CC aa 223 CC aa 223 CC aa 223 CC aa 223 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 158 + DD bb 158 DD bb 158 DD bb 158 EE aa 158 EE aa 158 EE bb 113 + EE bb 113 EE bb 113 FF aa 113 FF aa 113 FF aa 113 FF aa 113 + FF bb 113 FF bb 113 FF bb 113 FF bb 113 FF bb 113 FF bb 113 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 102 HH aa 102 HH aa 102 HH bb 102 + HH bb 102 HH bb 102 HH bb 102 HH bb 102 HH bb 102 II aa 102 + II aa 102 II bb 102 II bb 102 II bb 102 II bb 102 II bb 102 + JJ aa 102 JJ aa 102 JJ aa 102 JJ aa 102 JJ bb 102 JJ bb 102 + JJ bb 102 JJ bb 102} + +do_execsql_test 1.1.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 + BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 + CC bb 12025 CC bb 12025 DD aa 15147 DD aa 15147 DD aa 15147 + DD bb 15147 DD bb 15147 DD bb 15147 DD bb 15147 EE aa 19179 + EE aa 19179 EE bb 19179 EE bb 19179 EE bb 19179 FF aa 21718 + FF aa 21718 FF aa 21718 FF aa 21718 FF bb 21718 FF bb 21718 + FF bb 21718 FF bb 21718 FF bb 21718 FF bb 21718 GG aa 27386 + GG aa 27386 GG aa 27386 GG aa 27386 GG bb 27386 GG bb 27386 + GG bb 27386 GG bb 27386 HH aa 31854 HH aa 31854 HH aa 31854 + HH bb 31854 HH bb 31854 HH bb 31854 HH bb 31854 HH bb 31854 + HH bb 31854 II aa 37297 II aa 37297 II bb 37297 II bb 37297 + II bb 37297 II bb 37297 II bb 37297 JJ aa 40937 JJ aa 40937 + JJ aa 40937 JJ aa 40937 JJ bb 40937 JJ bb 40937 JJ bb 40937 + JJ bb 40937} + +do_execsql_test 1.1.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 2307 AA bb 2307 + AA bb 2307 AA bb 2307 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB aa 4685 BB bb 7558 BB bb 7558 BB bb 7558 BB bb 7558 + BB bb 7558 BB bb 7558 CC aa 12025 CC aa 12025 CC aa 12025 + CC aa 12025 CC bb 13979 CC bb 13979 DD aa 15147 DD aa 15147 + DD aa 15147 DD bb 16472 DD bb 16472 DD bb 16472 DD bb 16472 + EE aa 19179 EE aa 19179 EE bb 20069 EE bb 20069 EE bb 20069 + FF aa 21718 FF aa 21718 FF aa 21718 FF aa 21718 FF bb 23881 + FF bb 23881 FF bb 23881 FF bb 23881 FF bb 23881 FF bb 23881 + GG aa 27386 GG aa 27386 GG aa 27386 GG aa 27386 GG bb 28983 + GG bb 28983 GG bb 28983 GG bb 28983 HH aa 31854 HH aa 31854 + HH aa 31854 HH bb 34103 HH bb 34103 HH bb 34103 HH bb 34103 + HH bb 34103 HH bb 34103 II aa 37297 II aa 37297 II bb 38347 + II bb 38347 II bb 38347 II bb 38347 II bb 38347 JJ aa 40937 + JJ aa 40937 JJ aa 40937 JJ aa 40937 JJ bb 42951 JJ bb 42951 + JJ bb 42951 JJ bb 42951} + +do_execsql_test 1.1.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} + AA aa {} {} {} {} AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 + AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB bb 4685 4685 7558 7558 + BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 + BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 + BB bb 4685 4685 7558 7558 CC aa 12025 12025 12025 12025 + CC aa 12025 12025 12025 12025 CC aa 12025 12025 12025 12025 + CC aa 12025 12025 12025 12025 CC bb 12025 12025 13979 13979 + CC bb 12025 12025 13979 13979 DD aa 15147 15147 15147 15147 + DD aa 15147 15147 15147 15147 DD aa 15147 15147 15147 15147 + DD bb 15147 15147 16472 16472 DD bb 15147 15147 16472 16472 + DD bb 15147 15147 16472 16472 DD bb 15147 15147 16472 16472 + EE aa 19179 19179 19179 19179 EE aa 19179 19179 19179 19179 + EE bb 19179 19179 20069 20069 EE bb 19179 19179 20069 20069 + EE bb 19179 19179 20069 20069 FF aa 21718 21718 21718 21718 + FF aa 21718 21718 21718 21718 FF aa 21718 21718 21718 21718 + FF aa 21718 21718 21718 21718 FF bb 21718 21718 23881 23881 + FF bb 21718 21718 23881 23881 FF bb 21718 21718 23881 23881 + FF bb 21718 21718 23881 23881 FF bb 21718 21718 23881 23881 + FF bb 21718 21718 23881 23881 GG aa 27386 27386 27386 27386 + GG aa 27386 27386 27386 27386 GG aa 27386 27386 27386 27386 + GG aa 27386 27386 27386 27386 GG bb 27386 27386 28983 28983 + GG bb 27386 27386 28983 28983 GG bb 27386 27386 28983 28983 + GG bb 27386 27386 28983 28983 HH aa 31854 31854 31854 31854 + HH aa 31854 31854 31854 31854 HH aa 31854 31854 31854 31854 + HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 + HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 + HH bb 31854 31854 34103 34103 HH bb 31854 31854 34103 34103 + II aa 37297 37297 37297 37297 II aa 37297 37297 37297 37297 + II bb 37297 37297 38347 38347 II bb 37297 37297 38347 38347 + II bb 37297 37297 38347 38347 II bb 37297 37297 38347 38347 + II bb 37297 37297 38347 38347 JJ aa 40937 40937 40937 40937 + JJ aa 40937 40937 40937 40937 JJ aa 40937 40937 40937 40937 + JJ aa 40937 40937 40937 40937 JJ bb 40937 40937 42951 42951 + JJ bb 40937 40937 42951 42951 JJ bb 40937 40937 42951 42951 + JJ bb 40937 40937 42951 42951} + +do_execsql_test 1.2.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 + BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 + BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 + CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 + DD aa 19179 DD aa 19179 DD aa 19179 DD bb 19179 DD bb 19179 + DD bb 19179 DD bb 19179 EE aa 21718 EE aa 21718 EE bb 21718 + EE bb 21718 EE bb 21718 FF aa 27386 FF aa 27386 FF aa 27386 + FF aa 27386 FF bb 27386 FF bb 27386 FF bb 27386 FF bb 27386 + FF bb 27386 FF bb 27386 GG aa 31854 GG aa 31854 GG aa 31854 + GG aa 31854 GG bb 31854 GG bb 31854 GG bb 31854 GG bb 31854 + HH aa 37297 HH aa 37297 HH aa 37297 HH bb 37297 HH bb 37297 + HH bb 37297 HH bb 37297 HH bb 37297 HH bb 37297 II aa 40937 + II aa 40937 II bb 40937 II bb 40937 II bb 40937 II bb 40937 + II bb 40937 JJ aa 44737 JJ aa 44737 JJ aa 44737 JJ aa 44737 + JJ bb 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737} + +do_execsql_test 1.2.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 2307 AA aa 2307 AA aa 2307 AA aa 2307 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 7558 BB aa 7558 BB aa 7558 BB aa 7558 + BB aa 7558 BB aa 7558 BB bb 12025 BB bb 12025 BB bb 12025 + BB bb 12025 BB bb 12025 BB bb 12025 CC aa 13979 CC aa 13979 + CC aa 13979 CC aa 13979 CC bb 15147 CC bb 15147 DD aa 16472 + DD aa 16472 DD aa 16472 DD bb 19179 DD bb 19179 DD bb 19179 + DD bb 19179 EE aa 20069 EE aa 20069 EE bb 21718 EE bb 21718 + EE bb 21718 FF aa 23881 FF aa 23881 FF aa 23881 FF aa 23881 + FF bb 27386 FF bb 27386 FF bb 27386 FF bb 27386 FF bb 27386 + FF bb 27386 GG aa 28983 GG aa 28983 GG aa 28983 GG aa 28983 + GG bb 31854 GG bb 31854 GG bb 31854 GG bb 31854 HH aa 34103 + HH aa 34103 HH aa 34103 HH bb 37297 HH bb 37297 HH bb 37297 + HH bb 37297 HH bb 37297 HH bb 37297 II aa 38347 II aa 38347 + II bb 40937 II bb 40937 II bb 40937 II bb 40937 II bb 40937 + JJ aa 42951 JJ aa 42951 JJ aa 42951 JJ aa 42951 JJ bb 44737 + JJ bb 44737 JJ bb 44737 JJ bb 44737} + +do_execsql_test 1.2.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.2.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 934 BB bb 934 BB bb 934 BB bb 934 + BB bb 934 BB bb 934 CC aa 934 CC aa 934 CC aa 934 CC aa 934 + CC bb 934 CC bb 934 DD aa 934 DD aa 934 DD aa 934 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 959 FF aa 959 FF aa 959 FF aa 959 + FF bb 959 FF bb 959 FF bb 959 FF bb 959 FF bb 959 FF bb 959 + GG aa 959 GG aa 959 GG aa 959 GG aa 959 GG bb 959 GG bb 959 + GG bb 959 GG bb 959 HH aa 979 HH aa 979 HH aa 979 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 979 II bb 979 II bb 979 II bb 979 II bb 979 + JJ aa 979 JJ aa 979 JJ aa 979 JJ aa 979 JJ bb 979 JJ bb 979 + JJ bb 979 JJ bb 979} + +do_execsql_test 1.2.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 223 BB bb 223 BB bb 223 BB bb 223 + BB bb 223 BB bb 223 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 158 + DD bb 158 DD bb 158 DD bb 158 EE aa 113 EE aa 113 EE bb 113 + EE bb 113 EE bb 113 FF aa 113 FF aa 113 FF aa 113 FF aa 113 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 102 HH aa 102 HH aa 102 HH bb 102 + HH bb 102 HH bb 102 HH bb 102 HH bb 102 HH bb 102 II aa 102 + II aa 102 II bb 102 II bb 102 II bb 102 II bb 102 II bb 102 + JJ aa 102 JJ aa 102 JJ aa 102 JJ aa 102 JJ bb 102 JJ bb 102 + JJ bb 102 JJ bb 102} + +do_execsql_test 1.2.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 11263 BB aa 11365 BB aa 11613 + BB aa 11626 BB aa 11632 BB aa 11778 BB bb 11185 BB bb 11233 + BB bb 11239 BB bb 11314 BB bb 11320 BB bb 11392 CC aa 14388 + CC aa 14540 CC aa 14717 CC aa 14989 CC bb 14325 CC bb 14801 + DD aa 18334 DD aa 18923 DD aa 18955 DD bb 18220 DD bb 18385 + DD bb 18463 DD bb 18941 EE aa 20941 EE aa 21605 EE bb 20950 + EE bb 21089 EE bb 21466 FF aa 26716 FF aa 26719 FF aa 26768 + FF aa 27178 FF bb 26448 FF bb 26516 FF bb 26660 FF bb 26812 + FF bb 27091 FF bb 27284 GG aa 31220 GG aa 31374 GG aa 31519 + GG aa 31706 GG bb 30916 GG bb 30925 GG bb 31010 GG bb 31694 + HH aa 36318 HH aa 36507 HH aa 36817 HH bb 36334 HH bb 36567 + HH bb 36614 HH bb 36942 HH bb 36967 HH bb 37164 II aa 40285 + II aa 40539 II bb 40132 II bb 40266 II bb 40494 II bb 40516 + II bb 40687 JJ aa 43838 JJ aa 43969 JJ aa 44503 JJ aa 44624 + JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} + +do_execsql_test 1.2.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1373 AA aa 1396 AA aa 2068 AA aa 2084 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 6796 BB aa 6898 BB aa 7146 BB aa 7159 + BB aa 7165 BB aa 7311 BB bb 11185 BB bb 11233 BB bb 11239 + BB bb 11314 BB bb 11320 BB bb 11392 CC aa 13220 CC aa 13372 + CC aa 13549 CC aa 13821 CC bb 14325 CC bb 14801 DD aa 15627 + DD aa 16216 DD aa 16248 DD bb 18220 DD bb 18385 DD bb 18463 + DD bb 18941 EE aa 19292 EE aa 19956 EE bb 20950 EE bb 21089 + EE bb 21466 FF aa 23211 FF aa 23214 FF aa 23263 FF aa 23673 + FF bb 26448 FF bb 26516 FF bb 26660 FF bb 26812 FF bb 27091 + FF bb 27284 GG aa 28349 GG aa 28503 GG aa 28648 GG aa 28835 + GG bb 30916 GG bb 30925 GG bb 31010 GG bb 31694 HH aa 33124 + HH aa 33313 HH aa 33623 HH bb 36334 HH bb 36567 HH bb 36614 + HH bb 36942 HH bb 36967 HH bb 37164 II aa 37695 II aa 37949 + II bb 40132 II bb 40266 II bb 40494 II bb 40516 II bb 40687 + JJ aa 42052 JJ aa 42183 JJ aa 42717 JJ aa 42838 JJ bb 43898 + JJ bb 44383 JJ bb 44401 JJ bb 44480} + +do_execsql_test 1.2.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 + AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 + AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 + AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 + BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 + BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 + BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 + BB bb 11185 12025 11185 12025 BB bb 11233 12025 11233 12025 + BB bb 11239 12025 11239 12025 BB bb 11314 12025 11314 12025 + BB bb 11320 12025 11320 12025 BB bb 11392 12025 11392 12025 + CC aa 14388 15147 13220 13979 CC aa 14540 15147 13372 13979 + CC aa 14717 15147 13549 13979 CC aa 14989 15147 13821 13979 + CC bb 14325 15147 14325 15147 CC bb 14801 15147 14801 15147 + DD aa 18334 19179 15627 16472 DD aa 18923 19179 16216 16472 + DD aa 18955 19179 16248 16472 DD bb 18220 19179 18220 19179 + DD bb 18385 19179 18385 19179 DD bb 18463 19179 18463 19179 + DD bb 18941 19179 18941 19179 EE aa 20941 21718 19292 20069 + EE aa 21605 21718 19956 20069 EE bb 20950 21718 20950 21718 + EE bb 21089 21718 21089 21718 EE bb 21466 21718 21466 21718 + FF aa 26716 27386 23211 23881 FF aa 26719 27386 23214 23881 + FF aa 26768 27386 23263 23881 FF aa 27178 27386 23673 23881 + FF bb 26448 27386 26448 27386 FF bb 26516 27386 26516 27386 + FF bb 26660 27386 26660 27386 FF bb 26812 27386 26812 27386 + FF bb 27091 27386 27091 27386 FF bb 27284 27386 27284 27386 + GG aa 31220 31854 28349 28983 GG aa 31374 31854 28503 28983 + GG aa 31519 31854 28648 28983 GG aa 31706 31854 28835 28983 + GG bb 30916 31854 30916 31854 GG bb 30925 31854 30925 31854 + GG bb 31010 31854 31010 31854 GG bb 31694 31854 31694 31854 + HH aa 36318 37297 33124 34103 HH aa 36507 37297 33313 34103 + HH aa 36817 37297 33623 34103 HH bb 36334 37297 36334 37297 + HH bb 36567 37297 36567 37297 HH bb 36614 37297 36614 37297 + HH bb 36942 37297 36942 37297 HH bb 36967 37297 36967 37297 + HH bb 37164 37297 37164 37297 II aa 40285 40937 37695 38347 + II aa 40539 40937 37949 38347 II bb 40132 40937 40132 40937 + II bb 40266 40937 40266 40937 II bb 40494 40937 40494 40937 + II bb 40516 40937 40516 40937 II bb 40687 40937 40687 40937 + JJ aa 43838 44737 42052 42951 JJ aa 43969 44737 42183 42951 + JJ aa 44503 44737 42717 42951 JJ aa 44624 44737 42838 42951 + JJ bb 43898 44737 43898 44737 JJ bb 44383 44737 44383 44737 + JJ bb 44401 44737 44401 44737 JJ bb 44480 44737 44480 44737} + +do_execsql_test 1.3.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 12025 AA aa 12025 AA aa 12025 AA aa 12025 AA bb 12025 + AA bb 12025 AA bb 12025 AA bb 12025 BB aa 15147 BB aa 15147 + BB aa 15147 BB aa 15147 BB aa 15147 BB aa 15147 BB bb 15147 + BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 BB bb 15147 + CC aa 19179 CC aa 19179 CC aa 19179 CC aa 19179 CC bb 19179 + CC bb 19179 DD aa 21718 DD aa 21718 DD aa 21718 DD bb 21718 + DD bb 21718 DD bb 21718 DD bb 21718 EE aa 27386 EE aa 27386 + EE bb 27386 EE bb 27386 EE bb 27386 FF aa 31854 FF aa 31854 + FF aa 31854 FF aa 31854 FF bb 31854 FF bb 31854 FF bb 31854 + FF bb 31854 FF bb 31854 FF bb 31854 GG aa 37297 GG aa 37297 + GG aa 37297 GG aa 37297 GG bb 37297 GG bb 37297 GG bb 37297 + GG bb 37297 HH aa 40937 HH aa 40937 HH aa 40937 HH bb 40937 + HH bb 40937 HH bb 40937 HH bb 40937 HH bb 40937 HH bb 40937 + II aa 44737 II aa 44737 II bb 44737 II bb 44737 II bb 44737 + II bb 44737 II bb 44737 JJ aa 44737 JJ aa 44737 JJ aa 44737 + JJ aa 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737} + +do_execsql_test 1.3.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 7558 AA bb 7558 + AA bb 7558 AA bb 7558 BB aa 12025 BB aa 12025 BB aa 12025 + BB aa 12025 BB aa 12025 BB aa 12025 BB bb 13979 BB bb 13979 + BB bb 13979 BB bb 13979 BB bb 13979 BB bb 13979 CC aa 15147 + CC aa 15147 CC aa 15147 CC aa 15147 CC bb 16472 CC bb 16472 + DD aa 19179 DD aa 19179 DD aa 19179 DD bb 20069 DD bb 20069 + DD bb 20069 DD bb 20069 EE aa 21718 EE aa 21718 EE bb 23881 + EE bb 23881 EE bb 23881 FF aa 27386 FF aa 27386 FF aa 27386 + FF aa 27386 FF bb 28983 FF bb 28983 FF bb 28983 FF bb 28983 + FF bb 28983 FF bb 28983 GG aa 31854 GG aa 31854 GG aa 31854 + GG aa 31854 GG bb 34103 GG bb 34103 GG bb 34103 GG bb 34103 + HH aa 37297 HH aa 37297 HH aa 37297 HH bb 38347 HH bb 38347 + HH bb 38347 HH bb 38347 HH bb 38347 HH bb 38347 II aa 40937 + II aa 40937 II bb 42951 II bb 42951 II bb 42951 II bb 42951 + II bb 42951 JJ aa 44737 JJ aa 44737 JJ aa 44737 JJ aa 44737 + JJ bb 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737} + +do_execsql_test 1.3.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.3.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 934 BB bb 934 BB bb 934 BB bb 934 + BB bb 934 BB bb 934 CC aa 934 CC aa 934 CC aa 934 CC aa 934 + CC bb 934 CC bb 934 DD aa 959 DD aa 959 DD aa 959 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 959 FF aa 959 FF aa 959 FF aa 959 + FF bb 959 FF bb 959 FF bb 959 FF bb 959 FF bb 959 FF bb 959 + GG aa 959 GG aa 959 GG aa 959 GG aa 959 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 979 HH aa 979 HH aa 979 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 979 II bb 979 II bb 979 II bb 979 II bb 979 + JJ aa 979 JJ aa 979 JJ aa 979 JJ aa 979 JJ bb 979 JJ bb 979 + JJ bb 979 JJ bb 979} + +do_execsql_test 1.3.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 158 BB bb 158 BB bb 158 BB bb 158 + BB bb 158 BB bb 158 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 113 + DD bb 113 DD bb 113 DD bb 113 EE aa 113 EE aa 113 EE bb 113 + EE bb 113 EE bb 113 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 102 HH aa 102 HH aa 102 HH bb 102 + HH bb 102 HH bb 102 HH bb 102 HH bb 102 HH bb 102 II aa 102 + II aa 102 II bb 102 II bb 102 II bb 102 II bb 102 II bb 102 + JJ aa 102 JJ aa 102 JJ aa 102 JJ aa 102 JJ bb 102 JJ bb 102 + JJ bb 102 JJ bb 102} + +do_execsql_test 1.3.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 11091 AA aa 11114 AA aa 11786 AA aa 11802 AA bb 11155 + AA bb 11398 AA bb 11453 AA bb 11716 BB aa 14385 BB aa 14487 + BB aa 14735 BB aa 14748 BB aa 14754 BB aa 14900 BB bb 14307 + BB bb 14355 BB bb 14361 BB bb 14436 BB bb 14442 BB bb 14514 + CC aa 18420 CC aa 18572 CC aa 18749 CC aa 19021 CC bb 18357 + CC bb 18833 DD aa 20873 DD aa 21462 DD aa 21494 DD bb 20759 + DD bb 20924 DD bb 21002 DD bb 21480 EE aa 26609 EE aa 27273 + EE bb 26618 EE bb 26757 EE bb 27134 FF aa 31184 FF aa 31187 + FF aa 31236 FF aa 31646 FF bb 30916 FF bb 30984 FF bb 31128 + FF bb 31280 FF bb 31559 FF bb 31752 GG aa 36663 GG aa 36817 + GG aa 36962 GG aa 37149 GG bb 36359 GG bb 36368 GG bb 36453 + GG bb 37137 HH aa 39958 HH aa 40147 HH aa 40457 HH bb 39974 + HH bb 40207 HH bb 40254 HH bb 40582 HH bb 40607 HH bb 40804 + II aa 44085 II aa 44339 II bb 43932 II bb 44066 II bb 44294 + II bb 44316 II bb 44487 JJ aa 43838 JJ aa 43969 JJ aa 44503 + JJ aa 44624 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} + +do_execsql_test 1.3.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 6688 AA bb 6931 + AA bb 6986 AA bb 7249 BB aa 11263 BB aa 11365 BB aa 11613 + BB aa 11626 BB aa 11632 BB aa 11778 BB bb 13139 BB bb 13187 + BB bb 13193 BB bb 13268 BB bb 13274 BB bb 13346 CC aa 14388 + CC aa 14540 CC aa 14717 CC aa 14989 CC bb 15650 CC bb 16126 + DD aa 18334 DD aa 18923 DD aa 18955 DD bb 19110 DD bb 19275 + DD bb 19353 DD bb 19831 EE aa 20941 EE aa 21605 EE bb 23113 + EE bb 23252 EE bb 23629 FF aa 26716 FF aa 26719 FF aa 26768 + FF aa 27178 FF bb 28045 FF bb 28113 FF bb 28257 FF bb 28409 + FF bb 28688 FF bb 28881 GG aa 31220 GG aa 31374 GG aa 31519 + GG aa 31706 GG bb 33165 GG bb 33174 GG bb 33259 GG bb 33943 + HH aa 36318 HH aa 36507 HH aa 36817 HH bb 37384 HH bb 37617 + HH bb 37664 HH bb 37992 HH bb 38017 HH bb 38214 II aa 40285 + II aa 40539 II bb 42146 II bb 42280 II bb 42508 II bb 42530 + II bb 42701 JJ aa 43838 JJ aa 43969 JJ aa 44503 JJ aa 44624 + JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} + +do_execsql_test 1.3.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND 1 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 11091 12025 3751 4685 AA aa 11114 12025 3774 4685 + AA aa 11786 12025 4446 4685 AA aa 11802 12025 4462 4685 + AA bb 11155 12025 6688 7558 AA bb 11398 12025 6931 7558 + AA bb 11453 12025 6986 7558 AA bb 11716 12025 7249 7558 + BB aa 14385 15147 11263 12025 BB aa 14487 15147 11365 12025 + BB aa 14735 15147 11613 12025 BB aa 14748 15147 11626 12025 + BB aa 14754 15147 11632 12025 BB aa 14900 15147 11778 12025 + BB bb 14307 15147 13139 13979 BB bb 14355 15147 13187 13979 + BB bb 14361 15147 13193 13979 BB bb 14436 15147 13268 13979 + BB bb 14442 15147 13274 13979 BB bb 14514 15147 13346 13979 + CC aa 18420 19179 14388 15147 CC aa 18572 19179 14540 15147 + CC aa 18749 19179 14717 15147 CC aa 19021 19179 14989 15147 + CC bb 18357 19179 15650 16472 CC bb 18833 19179 16126 16472 + DD aa 20873 21718 18334 19179 DD aa 21462 21718 18923 19179 + DD aa 21494 21718 18955 19179 DD bb 20759 21718 19110 20069 + DD bb 20924 21718 19275 20069 DD bb 21002 21718 19353 20069 + DD bb 21480 21718 19831 20069 EE aa 26609 27386 20941 21718 + EE aa 27273 27386 21605 21718 EE bb 26618 27386 23113 23881 + EE bb 26757 27386 23252 23881 EE bb 27134 27386 23629 23881 + FF aa 31184 31854 26716 27386 FF aa 31187 31854 26719 27386 + FF aa 31236 31854 26768 27386 FF aa 31646 31854 27178 27386 + FF bb 30916 31854 28045 28983 FF bb 30984 31854 28113 28983 + FF bb 31128 31854 28257 28983 FF bb 31280 31854 28409 28983 + FF bb 31559 31854 28688 28983 FF bb 31752 31854 28881 28983 + GG aa 36663 37297 31220 31854 GG aa 36817 37297 31374 31854 + GG aa 36962 37297 31519 31854 GG aa 37149 37297 31706 31854 + GG bb 36359 37297 33165 34103 GG bb 36368 37297 33174 34103 + GG bb 36453 37297 33259 34103 GG bb 37137 37297 33943 34103 + HH aa 39958 40937 36318 37297 HH aa 40147 40937 36507 37297 + HH aa 40457 40937 36817 37297 HH bb 39974 40937 37384 38347 + HH bb 40207 40937 37617 38347 HH bb 40254 40937 37664 38347 + HH bb 40582 40937 37992 38347 HH bb 40607 40937 38017 38347 + HH bb 40804 40937 38214 38347 II aa 44085 44737 40285 40937 + II aa 44339 44737 40539 40937 II bb 43932 44737 42146 42951 + II bb 44066 44737 42280 42951 II bb 44294 44737 42508 42951 + II bb 44316 44737 42530 42951 II bb 44487 44737 42701 42951 + JJ aa 43838 44737 43838 44737 JJ aa 43969 44737 43969 44737 + JJ aa 44503 44737 44503 44737 JJ aa 44624 44737 44624 44737 + JJ bb 43898 44737 43898 44737 JJ bb 44383 44737 44383 44737 + JJ bb 44401 44737 44401 44737 JJ bb 44480 44737 44480 44737} + +do_execsql_test 1.4.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 + AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 + BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 44737 + BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 + CC aa 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC bb 44737 + CC bb 44737 DD aa 44737 DD aa 44737 DD aa 44737 DD bb 44737 + DD bb 44737 DD bb 44737 DD bb 44737 EE aa 44737 EE aa 44737 + EE bb 44737 EE bb 44737 EE bb 44737 FF aa 44737 FF aa 44737 + FF aa 44737 FF aa 44737 FF bb 44737 FF bb 44737 FF bb 44737 + FF bb 44737 FF bb 44737 FF bb 44737 GG aa 44737 GG aa 44737 + GG aa 44737 GG aa 44737 GG bb 44737 GG bb 44737 GG bb 44737 + GG bb 44737 HH aa 44737 HH aa 44737 HH aa 44737 HH bb 44737 + HH bb 44737 HH bb 44737 HH bb 44737 HH bb 44737 HH bb 44737 + II aa 44737 II aa 44737 II bb 44737 II bb 44737 II bb 44737 + II bb 44737 II bb 44737 JJ aa 44737 JJ aa 44737 JJ aa 44737 + JJ aa 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737} + +do_execsql_test 1.4.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 + AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 + BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 44737 + BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 + CC aa 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC bb 44737 + CC bb 44737 DD aa 44737 DD aa 44737 DD aa 44737 DD bb 44737 + DD bb 44737 DD bb 44737 DD bb 44737 EE aa 44737 EE aa 44737 + EE bb 44737 EE bb 44737 EE bb 44737 FF aa 44737 FF aa 44737 + FF aa 44737 FF aa 44737 FF bb 44737 FF bb 44737 FF bb 44737 + FF bb 44737 FF bb 44737 FF bb 44737 GG aa 44737 GG aa 44737 + GG aa 44737 GG aa 44737 GG bb 44737 GG bb 44737 GG bb 44737 + GG bb 44737 HH aa 44737 HH aa 44737 HH aa 44737 HH bb 44737 + HH bb 44737 HH bb 44737 HH bb 44737 HH bb 44737 HH bb 44737 + II aa 44737 II aa 44737 II bb 44737 II bb 44737 II bb 44737 + II bb 44737 II bb 44737 JJ aa 44737 JJ aa 44737 JJ aa 44737 + JJ aa 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737 JJ bb 44737} + +do_execsql_test 1.4.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.4.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 979 AA aa 979 AA aa 979 AA aa 979 AA bb 979 AA bb 979 + AA bb 979 AA bb 979 BB aa 979 BB aa 979 BB aa 979 BB aa 979 + BB aa 979 BB aa 979 BB bb 979 BB bb 979 BB bb 979 BB bb 979 + BB bb 979 BB bb 979 CC aa 979 CC aa 979 CC aa 979 CC aa 979 + CC bb 979 CC bb 979 DD aa 979 DD aa 979 DD aa 979 DD bb 979 + DD bb 979 DD bb 979 DD bb 979 EE aa 979 EE aa 979 EE bb 979 + EE bb 979 EE bb 979 FF aa 979 FF aa 979 FF aa 979 FF aa 979 + FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 + GG aa 979 GG aa 979 GG aa 979 GG aa 979 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 979 HH aa 979 HH aa 979 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 979 II bb 979 II bb 979 II bb 979 II bb 979 + JJ aa 979 JJ aa 979 JJ aa 979 JJ aa 979 JJ bb 979 JJ bb 979 + JJ bb 979 JJ bb 979} + +do_execsql_test 1.4.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 102 AA aa 102 AA aa 102 AA aa 102 AA bb 102 AA bb 102 + AA bb 102 AA bb 102 BB aa 102 BB aa 102 BB aa 102 BB aa 102 + BB aa 102 BB aa 102 BB bb 102 BB bb 102 BB bb 102 BB bb 102 + BB bb 102 BB bb 102 CC aa 102 CC aa 102 CC aa 102 CC aa 102 + CC bb 102 CC bb 102 DD aa 102 DD aa 102 DD aa 102 DD bb 102 + DD bb 102 DD bb 102 DD bb 102 EE aa 102 EE aa 102 EE bb 102 + EE bb 102 EE bb 102 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 102 HH aa 102 HH aa 102 HH bb 102 + HH bb 102 HH bb 102 HH bb 102 HH bb 102 HH bb 102 II aa 102 + II aa 102 II bb 102 II bb 102 II bb 102 II bb 102 II bb 102 + JJ aa 102 JJ aa 102 JJ aa 102 JJ aa 102 JJ bb 102 JJ bb 102 + JJ bb 102 JJ bb 102} + +do_execsql_test 1.4.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 43867 + AA bb 44110 AA bb 44165 AA bb 44428 BB aa 43975 BB aa 44077 + BB aa 44325 BB aa 44338 BB aa 44344 BB aa 44490 BB bb 43897 + BB bb 43945 BB bb 43951 BB bb 44026 BB bb 44032 BB bb 44104 + CC aa 43978 CC aa 44130 CC aa 44307 CC aa 44579 CC bb 43915 + CC bb 44391 DD aa 43892 DD aa 44481 DD aa 44513 DD bb 43778 + DD bb 43943 DD bb 44021 DD bb 44499 EE aa 43960 EE aa 44624 + EE bb 43969 EE bb 44108 EE bb 44485 FF aa 44067 FF aa 44070 + FF aa 44119 FF aa 44529 FF bb 43799 FF bb 43867 FF bb 44011 + FF bb 44163 FF bb 44442 FF bb 44635 GG aa 44103 GG aa 44257 + GG aa 44402 GG aa 44589 GG bb 43799 GG bb 43808 GG bb 43893 + GG bb 44577 HH aa 43758 HH aa 43947 HH aa 44257 HH bb 43774 + HH bb 44007 HH bb 44054 HH bb 44382 HH bb 44407 HH bb 44604 + II aa 44085 II aa 44339 II bb 43932 II bb 44066 II bb 44294 + II bb 44316 II bb 44487 JJ aa 43838 JJ aa 43969 JJ aa 44503 + JJ aa 44624 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} + +do_execsql_test 1.4.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 43867 + AA bb 44110 AA bb 44165 AA bb 44428 BB aa 43975 BB aa 44077 + BB aa 44325 BB aa 44338 BB aa 44344 BB aa 44490 BB bb 43897 + BB bb 43945 BB bb 43951 BB bb 44026 BB bb 44032 BB bb 44104 + CC aa 43978 CC aa 44130 CC aa 44307 CC aa 44579 CC bb 43915 + CC bb 44391 DD aa 43892 DD aa 44481 DD aa 44513 DD bb 43778 + DD bb 43943 DD bb 44021 DD bb 44499 EE aa 43960 EE aa 44624 + EE bb 43969 EE bb 44108 EE bb 44485 FF aa 44067 FF aa 44070 + FF aa 44119 FF aa 44529 FF bb 43799 FF bb 43867 FF bb 44011 + FF bb 44163 FF bb 44442 FF bb 44635 GG aa 44103 GG aa 44257 + GG aa 44402 GG aa 44589 GG bb 43799 GG bb 43808 GG bb 43893 + GG bb 44577 HH aa 43758 HH aa 43947 HH aa 44257 HH bb 43774 + HH bb 44007 HH bb 44054 HH bb 44382 HH bb 44407 HH bb 44604 + II aa 44085 II aa 44339 II bb 43932 II bb 44066 II bb 44294 + II bb 44316 II bb 44487 JJ aa 43838 JJ aa 43969 JJ aa 44503 + JJ aa 44624 JJ bb 43898 JJ bb 44383 JJ bb 44401 JJ bb 44480} + +do_execsql_test 1.4.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 + AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 + AA bb 43867 44737 43867 44737 AA bb 44110 44737 44110 44737 + AA bb 44165 44737 44165 44737 AA bb 44428 44737 44428 44737 + BB aa 43975 44737 43975 44737 BB aa 44077 44737 44077 44737 + BB aa 44325 44737 44325 44737 BB aa 44338 44737 44338 44737 + BB aa 44344 44737 44344 44737 BB aa 44490 44737 44490 44737 + BB bb 43897 44737 43897 44737 BB bb 43945 44737 43945 44737 + BB bb 43951 44737 43951 44737 BB bb 44026 44737 44026 44737 + BB bb 44032 44737 44032 44737 BB bb 44104 44737 44104 44737 + CC aa 43978 44737 43978 44737 CC aa 44130 44737 44130 44737 + CC aa 44307 44737 44307 44737 CC aa 44579 44737 44579 44737 + CC bb 43915 44737 43915 44737 CC bb 44391 44737 44391 44737 + DD aa 43892 44737 43892 44737 DD aa 44481 44737 44481 44737 + DD aa 44513 44737 44513 44737 DD bb 43778 44737 43778 44737 + DD bb 43943 44737 43943 44737 DD bb 44021 44737 44021 44737 + DD bb 44499 44737 44499 44737 EE aa 43960 44737 43960 44737 + EE aa 44624 44737 44624 44737 EE bb 43969 44737 43969 44737 + EE bb 44108 44737 44108 44737 EE bb 44485 44737 44485 44737 + FF aa 44067 44737 44067 44737 FF aa 44070 44737 44070 44737 + FF aa 44119 44737 44119 44737 FF aa 44529 44737 44529 44737 + FF bb 43799 44737 43799 44737 FF bb 43867 44737 43867 44737 + FF bb 44011 44737 44011 44737 FF bb 44163 44737 44163 44737 + FF bb 44442 44737 44442 44737 FF bb 44635 44737 44635 44737 + GG aa 44103 44737 44103 44737 GG aa 44257 44737 44257 44737 + GG aa 44402 44737 44402 44737 GG aa 44589 44737 44589 44737 + GG bb 43799 44737 43799 44737 GG bb 43808 44737 43808 44737 + GG bb 43893 44737 43893 44737 GG bb 44577 44737 44577 44737 + HH aa 43758 44737 43758 44737 HH aa 43947 44737 43947 44737 + HH aa 44257 44737 44257 44737 HH bb 43774 44737 43774 44737 + HH bb 44007 44737 44007 44737 HH bb 44054 44737 44054 44737 + HH bb 44382 44737 44382 44737 HH bb 44407 44737 44407 44737 + HH bb 44604 44737 44604 44737 II aa 44085 44737 44085 44737 + II aa 44339 44737 44339 44737 II bb 43932 44737 43932 44737 + II bb 44066 44737 44066 44737 II bb 44294 44737 44294 44737 + II bb 44316 44737 44316 44737 II bb 44487 44737 44487 44737 + JJ aa 43838 44737 43838 44737 JJ aa 43969 44737 43969 44737 + JJ aa 44503 44737 44503 44737 JJ aa 44624 44737 44624 44737 + JJ bb 43898 44737 43898 44737 JJ bb 44383 44737 44383 44737 + JJ bb 44401 44737 44401 44737 JJ bb 44480 44737 44480 44737} + +do_execsql_test 1.5.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.5.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.5.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.5.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.5.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.5.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.5.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.5.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 PRECEDING AND 2 PRECEDING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} + AA aa {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} + AA bb {} {} {} {} AA bb {} {} {} {} BB aa {} {} {} {} + BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} + BB aa {} {} {} {} BB aa {} {} {} {} BB bb {} {} {} {} + BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} + BB bb {} {} {} {} BB bb {} {} {} {} CC aa {} {} {} {} + CC aa {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} + CC bb {} {} {} {} CC bb {} {} {} {} DD aa {} {} {} {} + DD aa {} {} {} {} DD aa {} {} {} {} DD bb {} {} {} {} + DD bb {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} + EE aa {} {} {} {} EE aa {} {} {} {} EE bb {} {} {} {} + EE bb {} {} {} {} EE bb {} {} {} {} FF aa {} {} {} {} + FF aa {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} + FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} + FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} + GG aa {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} + GG aa {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} + GG bb {} {} {} {} GG bb {} {} {} {} HH aa {} {} {} {} + HH aa {} {} {} {} HH aa {} {} {} {} HH bb {} {} {} {} + HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} + HH bb {} {} {} {} HH bb {} {} {} {} II aa {} {} {} {} + II aa {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} + II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} + JJ aa {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} + JJ aa {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} + JJ bb {} {} {} {} JJ bb {} {} {} {}} + +do_execsql_test 1.6.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 + BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 + CC bb 12025 CC bb 12025 DD aa 10462 DD aa 10462 DD aa 10462 + DD bb 10462 DD bb 10462 DD bb 10462 DD bb 10462 EE aa 7154 + EE aa 7154 EE bb 7154 EE bb 7154 EE bb 7154 FF aa 6571 FF aa 6571 + FF aa 6571 FF aa 6571 FF bb 6571 FF bb 6571 FF bb 6571 FF bb 6571 + FF bb 6571 FF bb 6571 GG aa 8207 GG aa 8207 GG aa 8207 GG aa 8207 + GG bb 8207 GG bb 8207 GG bb 8207 GG bb 8207 HH aa 10136 + HH aa 10136 HH aa 10136 HH bb 10136 HH bb 10136 HH bb 10136 + HH bb 10136 HH bb 10136 HH bb 10136 II aa 9911 II aa 9911 + II bb 9911 II bb 9911 II bb 9911 II bb 9911 II bb 9911 JJ aa 9083 + JJ aa 9083 JJ aa 9083 JJ aa 9083 JJ bb 9083 JJ bb 9083 JJ bb 9083 + JJ bb 9083} + +do_execsql_test 1.6.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 2307 AA bb 2307 + AA bb 2307 AA bb 2307 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB aa 4685 BB bb 5251 BB bb 5251 BB bb 5251 BB bb 5251 + BB bb 5251 BB bb 5251 CC aa 7340 CC aa 7340 CC aa 7340 CC aa 7340 + CC bb 6421 CC bb 6421 DD aa 3122 DD aa 3122 DD aa 3122 DD bb 2493 + DD bb 2493 DD bb 2493 DD bb 2493 EE aa 4032 EE aa 4032 EE bb 3597 + EE bb 3597 EE bb 3597 FF aa 2539 FF aa 2539 FF aa 2539 FF aa 2539 + FF bb 3812 FF bb 3812 FF bb 3812 FF bb 3812 FF bb 3812 FF bb 3812 + GG aa 5668 GG aa 5668 GG aa 5668 GG aa 5668 GG bb 5102 GG bb 5102 + GG bb 5102 GG bb 5102 HH aa 4468 HH aa 4468 HH aa 4468 HH bb 5120 + HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 II aa 5443 + II aa 5443 II bb 4244 II bb 4244 II bb 4244 II bb 4244 II bb 4244 + JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ bb 4604 JJ bb 4604 + JJ bb 4604 JJ bb 4604} + +do_execsql_test 1.6.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.6.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 870 BB bb 870 BB bb 870 BB bb 870 + BB bb 870 BB bb 870 CC aa 840 CC aa 840 CC aa 840 CC aa 840 + CC bb 840 CC bb 840 DD aa 822 DD aa 822 DD aa 822 DD bb 845 + DD bb 845 DD bb 845 DD bb 845 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 777 FF aa 777 FF aa 777 FF aa 777 + FF bb 768 FF bb 768 FF bb 768 FF bb 768 FF bb 768 FF bb 768 + GG aa 938 GG aa 938 GG aa 938 GG aa 938 GG bb 938 GG bb 938 + GG bb 938 GG bb 938 HH aa 938 HH aa 938 HH aa 938 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 963 II bb 963 II bb 963 II bb 963 II bb 963 + JJ aa 805 JJ aa 805 JJ aa 805 JJ aa 805 JJ bb 899 JJ bb 899 + JJ bb 899 JJ bb 899} + +do_execsql_test 1.6.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 247 BB bb 247 BB bb 247 BB bb 247 + BB bb 247 BB bb 247 CC aa 247 CC aa 247 CC aa 247 CC aa 247 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 224 + DD bb 224 DD bb 224 DD bb 224 EE aa 224 EE aa 224 EE bb 113 + EE bb 113 EE bb 113 FF aa 113 FF aa 113 FF aa 113 FF aa 113 + FF bb 208 FF bb 208 FF bb 208 FF bb 208 FF bb 208 FF bb 208 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 148 HH aa 148 HH aa 148 HH bb 160 + HH bb 160 HH bb 160 HH bb 160 HH bb 160 HH bb 160 II aa 133 + II aa 133 II bb 133 II bb 133 II bb 133 II bb 133 II bb 133 + JJ aa 250 JJ aa 250 JJ aa 250 JJ aa 250 JJ bb 113 JJ bb 113 + JJ bb 113 JJ bb 113} + +do_execsql_test 1.6.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 + BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 + CC bb 12025 CC bb 12025 DD aa 10462 DD aa 10462 DD aa 10462 + DD bb 10462 DD bb 10462 DD bb 10462 DD bb 10462 EE aa 7154 + EE aa 7154 EE bb 7154 EE bb 7154 EE bb 7154 FF aa 6571 FF aa 6571 + FF aa 6571 FF aa 6571 FF bb 6571 FF bb 6571 FF bb 6571 FF bb 6571 + FF bb 6571 FF bb 6571 GG aa 8207 GG aa 8207 GG aa 8207 GG aa 8207 + GG bb 8207 GG bb 8207 GG bb 8207 GG bb 8207 HH aa 10136 + HH aa 10136 HH aa 10136 HH bb 10136 HH bb 10136 HH bb 10136 + HH bb 10136 HH bb 10136 HH bb 10136 II aa 9911 II aa 9911 + II bb 9911 II bb 9911 II bb 9911 II bb 9911 II bb 9911 JJ aa 9083 + JJ aa 9083 JJ aa 9083 JJ aa 9083 JJ bb 9083 JJ bb 9083 JJ bb 9083 + JJ bb 9083} + +do_execsql_test 1.6.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 2307 AA bb 2307 + AA bb 2307 AA bb 2307 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB aa 4685 BB bb 5251 BB bb 5251 BB bb 5251 BB bb 5251 + BB bb 5251 BB bb 5251 CC aa 7340 CC aa 7340 CC aa 7340 CC aa 7340 + CC bb 6421 CC bb 6421 DD aa 3122 DD aa 3122 DD aa 3122 DD bb 2493 + DD bb 2493 DD bb 2493 DD bb 2493 EE aa 4032 EE aa 4032 EE bb 3597 + EE bb 3597 EE bb 3597 FF aa 2539 FF aa 2539 FF aa 2539 FF aa 2539 + FF bb 3812 FF bb 3812 FF bb 3812 FF bb 3812 FF bb 3812 FF bb 3812 + GG aa 5668 GG aa 5668 GG aa 5668 GG aa 5668 GG bb 5102 GG bb 5102 + GG bb 5102 GG bb 5102 HH aa 4468 HH aa 4468 HH aa 4468 HH bb 5120 + HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 HH bb 5120 II aa 5443 + II aa 5443 II bb 4244 II bb 4244 II bb 4244 II bb 4244 II bb 4244 + JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ aa 3640 JJ bb 4604 JJ bb 4604 + JJ bb 4604 JJ bb 4604} + +do_execsql_test 1.6.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND 1 PRECEDING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} + AA aa {} {} {} {} AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 + AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB bb 4685 4685 5251 5251 + BB bb 4685 4685 5251 5251 BB bb 4685 4685 5251 5251 + BB bb 4685 4685 5251 5251 BB bb 4685 4685 5251 5251 + BB bb 4685 4685 5251 5251 CC aa 12025 12025 7340 7340 + CC aa 12025 12025 7340 7340 CC aa 12025 12025 7340 7340 + CC aa 12025 12025 7340 7340 CC bb 12025 12025 6421 6421 + CC bb 12025 12025 6421 6421 DD aa 10462 10462 3122 3122 + DD aa 10462 10462 3122 3122 DD aa 10462 10462 3122 3122 + DD bb 10462 10462 2493 2493 DD bb 10462 10462 2493 2493 + DD bb 10462 10462 2493 2493 DD bb 10462 10462 2493 2493 + EE aa 7154 7154 4032 4032 EE aa 7154 7154 4032 4032 + EE bb 7154 7154 3597 3597 EE bb 7154 7154 3597 3597 + EE bb 7154 7154 3597 3597 FF aa 6571 6571 2539 2539 + FF aa 6571 6571 2539 2539 FF aa 6571 6571 2539 2539 + FF aa 6571 6571 2539 2539 FF bb 6571 6571 3812 3812 + FF bb 6571 6571 3812 3812 FF bb 6571 6571 3812 3812 + FF bb 6571 6571 3812 3812 FF bb 6571 6571 3812 3812 + FF bb 6571 6571 3812 3812 GG aa 8207 8207 5668 5668 + GG aa 8207 8207 5668 5668 GG aa 8207 8207 5668 5668 + GG aa 8207 8207 5668 5668 GG bb 8207 8207 5102 5102 + GG bb 8207 8207 5102 5102 GG bb 8207 8207 5102 5102 + GG bb 8207 8207 5102 5102 HH aa 10136 10136 4468 4468 + HH aa 10136 10136 4468 4468 HH aa 10136 10136 4468 4468 + HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 + HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 + HH bb 10136 10136 5120 5120 HH bb 10136 10136 5120 5120 + II aa 9911 9911 5443 5443 II aa 9911 9911 5443 5443 + II bb 9911 9911 4244 4244 II bb 9911 9911 4244 4244 + II bb 9911 9911 4244 4244 II bb 9911 9911 4244 4244 + II bb 9911 9911 4244 4244 JJ aa 9083 9083 3640 3640 + JJ aa 9083 9083 3640 3640 JJ aa 9083 9083 3640 3640 + JJ aa 9083 9083 3640 3640 JJ bb 9083 9083 4604 4604 + JJ bb 9083 9083 4604 4604 JJ bb 9083 9083 4604 4604 + JJ bb 9083 9083 4604 4604} + +do_execsql_test 1.7.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 + BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 + CC bb 12025 CC bb 12025 DD aa 15147 DD aa 15147 DD aa 15147 + DD bb 15147 DD bb 15147 DD bb 15147 DD bb 15147 EE aa 14494 + EE aa 14494 EE bb 14494 EE bb 14494 EE bb 14494 FF aa 9693 + FF aa 9693 FF aa 9693 FF aa 9693 FF bb 9693 FF bb 9693 FF bb 9693 + FF bb 9693 FF bb 9693 FF bb 9693 GG aa 12239 GG aa 12239 + GG aa 12239 GG aa 12239 GG bb 12239 GG bb 12239 GG bb 12239 + GG bb 12239 HH aa 12675 HH aa 12675 HH aa 12675 HH bb 12675 + HH bb 12675 HH bb 12675 HH bb 12675 HH bb 12675 HH bb 12675 + II aa 15579 II aa 15579 II bb 15579 II bb 15579 II bb 15579 + II bb 15579 II bb 15579 JJ aa 13551 JJ aa 13551 JJ aa 13551 + JJ aa 13551 JJ bb 13551 JJ bb 13551 JJ bb 13551 JJ bb 13551} + +do_execsql_test 1.7.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 2307 AA bb 2307 + AA bb 2307 AA bb 2307 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB aa 4685 BB bb 7558 BB bb 7558 BB bb 7558 BB bb 7558 + BB bb 7558 BB bb 7558 CC aa 9718 CC aa 9718 CC aa 9718 CC aa 9718 + CC bb 9294 CC bb 9294 DD aa 7589 DD aa 7589 DD aa 7589 DD bb 4447 + DD bb 4447 DD bb 4447 DD bb 4447 EE aa 5200 EE aa 5200 EE bb 4922 + EE bb 4922 EE bb 4922 FF aa 5246 FF aa 5246 FF aa 5246 FF aa 5246 + FF bb 4702 FF bb 4702 FF bb 4702 FF bb 4702 FF bb 4702 FF bb 4702 + GG aa 7317 GG aa 7317 GG aa 7317 GG aa 7317 GG bb 7265 GG bb 7265 + GG bb 7265 GG bb 7265 HH aa 7973 HH aa 7973 HH aa 7973 HH bb 6717 + HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 II aa 8314 + II aa 8314 II bb 6493 II bb 6493 II bb 6493 II bb 6493 II bb 6493 + JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ bb 5654 JJ bb 5654 + JJ bb 5654 JJ bb 5654} + +do_execsql_test 1.7.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.7.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 934 BB bb 934 BB bb 934 BB bb 934 + BB bb 934 BB bb 934 CC aa 870 CC aa 870 CC aa 870 CC aa 870 + CC bb 840 CC bb 840 DD aa 840 DD aa 840 DD aa 840 DD bb 845 + DD bb 845 DD bb 845 DD bb 845 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 959 FF aa 959 FF aa 959 FF aa 959 + FF bb 777 FF bb 777 FF bb 777 FF bb 777 FF bb 777 FF bb 777 + GG aa 938 GG aa 938 GG aa 938 GG aa 938 GG bb 938 GG bb 938 + GG bb 938 GG bb 938 HH aa 938 HH aa 938 HH aa 938 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 979 II bb 979 II bb 979 II bb 979 II bb 979 + JJ aa 963 JJ aa 963 JJ aa 963 JJ aa 963 JJ bb 899 JJ bb 899 + JJ bb 899 JJ bb 899} + +do_execsql_test 1.7.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 223 BB bb 223 BB bb 223 BB bb 223 + BB bb 223 BB bb 223 CC aa 247 CC aa 247 CC aa 247 CC aa 247 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 158 + DD bb 158 DD bb 158 DD bb 158 EE aa 224 EE aa 224 EE bb 113 + EE bb 113 EE bb 113 FF aa 113 FF aa 113 FF aa 113 FF aa 113 + FF bb 113 FF bb 113 FF bb 113 FF bb 113 FF bb 113 FF bb 113 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 102 HH aa 102 HH aa 102 HH bb 148 + HH bb 148 HH bb 148 HH bb 148 HH bb 148 HH bb 148 II aa 133 + II aa 133 II bb 133 II bb 133 II bb 133 II bb 133 II bb 133 + JJ aa 133 JJ aa 133 JJ aa 133 JJ aa 133 JJ bb 113 JJ bb 113 + JJ bb 113 JJ bb 113} + +do_execsql_test 1.7.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 BB bb 4685 + BB bb 4685 CC aa 12025 CC aa 12025 CC aa 12025 CC aa 12025 + CC bb 12025 CC bb 12025 DD aa 15147 DD aa 15147 DD aa 15147 + DD bb 15147 DD bb 15147 DD bb 15147 DD bb 15147 EE aa 14494 + EE aa 14494 EE bb 14494 EE bb 14494 EE bb 14494 FF aa 9693 + FF aa 9693 FF aa 9693 FF aa 9693 FF bb 9693 FF bb 9693 FF bb 9693 + FF bb 9693 FF bb 9693 FF bb 9693 GG aa 12239 GG aa 12239 + GG aa 12239 GG aa 12239 GG bb 12239 GG bb 12239 GG bb 12239 + GG bb 12239 HH aa 12675 HH aa 12675 HH aa 12675 HH bb 12675 + HH bb 12675 HH bb 12675 HH bb 12675 HH bb 12675 HH bb 12675 + II aa 15579 II aa 15579 II bb 15579 II bb 15579 II bb 15579 + II bb 15579 II bb 15579 JJ aa 13551 JJ aa 13551 JJ aa 13551 + JJ aa 13551 JJ bb 13551 JJ bb 13551 JJ bb 13551 JJ bb 13551} + +do_execsql_test 1.7.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb 2307 AA bb 2307 + AA bb 2307 AA bb 2307 BB aa 4685 BB aa 4685 BB aa 4685 BB aa 4685 + BB aa 4685 BB aa 4685 BB bb 7558 BB bb 7558 BB bb 7558 BB bb 7558 + BB bb 7558 BB bb 7558 CC aa 9718 CC aa 9718 CC aa 9718 CC aa 9718 + CC bb 9294 CC bb 9294 DD aa 7589 DD aa 7589 DD aa 7589 DD bb 4447 + DD bb 4447 DD bb 4447 DD bb 4447 EE aa 5200 EE aa 5200 EE bb 4922 + EE bb 4922 EE bb 4922 FF aa 5246 FF aa 5246 FF aa 5246 FF aa 5246 + FF bb 4702 FF bb 4702 FF bb 4702 FF bb 4702 FF bb 4702 FF bb 4702 + GG aa 7317 GG aa 7317 GG aa 7317 GG aa 7317 GG bb 7265 GG bb 7265 + GG bb 7265 GG bb 7265 HH aa 7973 HH aa 7973 HH aa 7973 HH bb 6717 + HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 HH bb 6717 II aa 8314 + II aa 8314 II bb 6493 II bb 6493 II bb 6493 II bb 6493 II bb 6493 + JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ aa 6834 JJ bb 5654 JJ bb 5654 + JJ bb 5654 JJ bb 5654} + +do_execsql_test 1.7.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 1 PRECEDING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} + AA aa {} {} {} {} AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 + AA bb {} {} 2307 2307 AA bb {} {} 2307 2307 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB aa 4685 4685 4685 4685 + BB aa 4685 4685 4685 4685 BB bb 4685 4685 7558 7558 + BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 + BB bb 4685 4685 7558 7558 BB bb 4685 4685 7558 7558 + BB bb 4685 4685 7558 7558 CC aa 12025 12025 9718 9718 + CC aa 12025 12025 9718 9718 CC aa 12025 12025 9718 9718 + CC aa 12025 12025 9718 9718 CC bb 12025 12025 9294 9294 + CC bb 12025 12025 9294 9294 DD aa 15147 15147 7589 7589 + DD aa 15147 15147 7589 7589 DD aa 15147 15147 7589 7589 + DD bb 15147 15147 4447 4447 DD bb 15147 15147 4447 4447 + DD bb 15147 15147 4447 4447 DD bb 15147 15147 4447 4447 + EE aa 14494 14494 5200 5200 EE aa 14494 14494 5200 5200 + EE bb 14494 14494 4922 4922 EE bb 14494 14494 4922 4922 + EE bb 14494 14494 4922 4922 FF aa 9693 9693 5246 5246 + FF aa 9693 9693 5246 5246 FF aa 9693 9693 5246 5246 + FF aa 9693 9693 5246 5246 FF bb 9693 9693 4702 4702 + FF bb 9693 9693 4702 4702 FF bb 9693 9693 4702 4702 + FF bb 9693 9693 4702 4702 FF bb 9693 9693 4702 4702 + FF bb 9693 9693 4702 4702 GG aa 12239 12239 7317 7317 + GG aa 12239 12239 7317 7317 GG aa 12239 12239 7317 7317 + GG aa 12239 12239 7317 7317 GG bb 12239 12239 7265 7265 + GG bb 12239 12239 7265 7265 GG bb 12239 12239 7265 7265 + GG bb 12239 12239 7265 7265 HH aa 12675 12675 7973 7973 + HH aa 12675 12675 7973 7973 HH aa 12675 12675 7973 7973 + HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 + HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 + HH bb 12675 12675 6717 6717 HH bb 12675 12675 6717 6717 + II aa 15579 15579 8314 8314 II aa 15579 15579 8314 8314 + II bb 15579 15579 6493 6493 II bb 15579 15579 6493 6493 + II bb 15579 15579 6493 6493 II bb 15579 15579 6493 6493 + II bb 15579 15579 6493 6493 JJ aa 13551 13551 6834 6834 + JJ aa 13551 13551 6834 6834 JJ aa 13551 13551 6834 6834 + JJ aa 13551 13551 6834 6834 JJ bb 13551 13551 5654 5654 + JJ bb 13551 13551 5654 5654 JJ bb 13551 13551 5654 5654 + JJ bb 13551 13551 5654 5654} + +do_execsql_test 1.8.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 + BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 + BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 + CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 + DD aa 19179 DD aa 19179 DD aa 19179 DD bb 19179 DD bb 19179 + DD bb 19179 DD bb 19179 EE aa 17033 EE aa 17033 EE bb 17033 + EE bb 17033 EE bb 17033 FF aa 15361 FF aa 15361 FF aa 15361 + FF aa 15361 FF bb 15361 FF bb 15361 FF bb 15361 FF bb 15361 + FF bb 15361 FF bb 15361 GG aa 16707 GG aa 16707 GG aa 16707 + GG aa 16707 GG bb 16707 GG bb 16707 GG bb 16707 GG bb 16707 + HH aa 18118 HH aa 18118 HH aa 18118 HH bb 18118 HH bb 18118 + HH bb 18118 HH bb 18118 HH bb 18118 HH bb 18118 II aa 19219 + II aa 19219 II bb 19219 II bb 19219 II bb 19219 II bb 19219 + II bb 19219 JJ aa 17351 JJ aa 17351 JJ aa 17351 JJ aa 17351 + JJ bb 17351 JJ bb 17351 JJ bb 17351 JJ bb 17351} + +do_execsql_test 1.8.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 2307 AA aa 2307 AA aa 2307 AA aa 2307 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 7558 BB aa 7558 BB aa 7558 BB aa 7558 + BB aa 7558 BB aa 7558 BB bb 12025 BB bb 12025 BB bb 12025 + BB bb 12025 BB bb 12025 BB bb 12025 CC aa 11672 CC aa 11672 + CC aa 11672 CC aa 11672 CC bb 10462 CC bb 10462 DD aa 8914 + DD aa 8914 DD aa 8914 DD bb 7154 DD bb 7154 DD bb 7154 DD bb 7154 + EE aa 6090 EE aa 6090 EE bb 6571 EE bb 6571 EE bb 6571 FF aa 7409 + FF aa 7409 FF aa 7409 FF aa 7409 FF bb 8207 FF bb 8207 FF bb 8207 + FF bb 8207 FF bb 8207 FF bb 8207 GG aa 8914 GG aa 8914 GG aa 8914 + GG aa 8914 GG bb 10136 GG bb 10136 GG bb 10136 GG bb 10136 + HH aa 10222 HH aa 10222 HH aa 10222 HH bb 9911 HH bb 9911 + HH bb 9911 HH bb 9911 HH bb 9911 HH bb 9911 II aa 9364 II aa 9364 + II bb 9083 II bb 9083 II bb 9083 II bb 9083 II bb 9083 JJ aa 8848 + JJ aa 8848 JJ aa 8848 JJ aa 8848 JJ bb 7440 JJ bb 7440 JJ bb 7440 + JJ bb 7440} + +do_execsql_test 1.8.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.8.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 934 BB bb 934 BB bb 934 BB bb 934 + BB bb 934 BB bb 934 CC aa 870 CC aa 870 CC aa 870 CC aa 870 + CC bb 840 CC bb 840 DD aa 845 DD aa 845 DD aa 845 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 959 FF aa 959 FF aa 959 FF aa 959 + FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 + GG aa 938 GG aa 938 GG aa 938 GG aa 938 GG bb 938 GG bb 938 + GG bb 938 GG bb 938 HH aa 979 HH aa 979 HH aa 979 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 979 II bb 979 II bb 979 II bb 979 II bb 979 + JJ aa 963 JJ aa 963 JJ aa 963 JJ aa 963 JJ bb 899 JJ bb 899 + JJ bb 899 JJ bb 899} + +do_execsql_test 1.8.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 223 BB bb 223 BB bb 223 BB bb 223 + BB bb 223 BB bb 223 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 158 + DD bb 158 DD bb 158 DD bb 158 EE aa 113 EE aa 113 EE bb 113 + EE bb 113 EE bb 113 FF aa 113 FF aa 113 FF aa 113 FF aa 113 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 102 HH aa 102 HH aa 102 HH bb 133 + HH bb 133 HH bb 133 HH bb 133 HH bb 133 HH bb 133 II aa 133 + II aa 133 II bb 133 II bb 133 II bb 133 II bb 133 II bb 133 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 113 JJ bb 113 + JJ bb 113 JJ bb 113} + +do_execsql_test 1.8.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 11263 BB aa 11365 BB aa 11613 + BB aa 11626 BB aa 11632 BB aa 11778 BB bb 11185 BB bb 11233 + BB bb 11239 BB bb 11314 BB bb 11320 BB bb 11392 CC aa 14388 + CC aa 14540 CC aa 14717 CC aa 14989 CC bb 14325 CC bb 14801 + DD aa 18334 DD aa 18923 DD aa 18955 DD bb 18220 DD bb 18385 + DD bb 18463 DD bb 18941 EE aa 16256 EE aa 16920 EE bb 16265 + EE bb 16404 EE bb 16781 FF aa 14691 FF aa 14694 FF aa 14743 + FF aa 15153 FF bb 14423 FF bb 14491 FF bb 14635 FF bb 14787 + FF bb 15066 FF bb 15259 GG aa 16073 GG aa 16227 GG aa 16372 + GG aa 16559 GG bb 15769 GG bb 15778 GG bb 15863 GG bb 16547 + HH aa 17139 HH aa 17328 HH aa 17638 HH bb 17155 HH bb 17388 + HH bb 17435 HH bb 17763 HH bb 17788 HH bb 17985 II aa 18567 + II aa 18821 II bb 18414 II bb 18548 II bb 18776 II bb 18798 + II bb 18969 JJ aa 16452 JJ aa 16583 JJ aa 17117 JJ aa 17238 + JJ bb 16512 JJ bb 16997 JJ bb 17015 JJ bb 17094} + +do_execsql_test 1.8.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1373 AA aa 1396 AA aa 2068 AA aa 2084 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 6796 BB aa 6898 BB aa 7146 BB aa 7159 + BB aa 7165 BB aa 7311 BB bb 11185 BB bb 11233 BB bb 11239 + BB bb 11314 BB bb 11320 BB bb 11392 CC aa 10913 CC aa 11065 + CC aa 11242 CC aa 11514 CC bb 9640 CC bb 10116 DD aa 8069 + DD aa 8658 DD aa 8690 DD bb 6195 DD bb 6360 DD bb 6438 DD bb 6916 + EE aa 5313 EE aa 5977 EE bb 5803 EE bb 5942 EE bb 6319 FF aa 6739 + FF aa 6742 FF aa 6791 FF aa 7201 FF bb 7269 FF bb 7337 FF bb 7481 + FF bb 7633 FF bb 7912 FF bb 8105 GG aa 8280 GG aa 8434 GG aa 8579 + GG aa 8766 GG bb 9198 GG bb 9207 GG bb 9292 GG bb 9976 HH aa 9243 + HH aa 9432 HH aa 9742 HH bb 8948 HH bb 9181 HH bb 9228 HH bb 9556 + HH bb 9581 HH bb 9778 II aa 8712 II aa 8966 II bb 8278 II bb 8412 + II bb 8640 II bb 8662 II bb 8833 JJ aa 7949 JJ aa 8080 JJ aa 8614 + JJ aa 8735 JJ bb 6601 JJ bb 7086 JJ bb 7104 JJ bb 7183} + +do_execsql_test 1.8.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 PRECEDING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 + AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 + AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 + AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 + BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 + BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 + BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 + BB bb 11185 12025 11185 12025 BB bb 11233 12025 11233 12025 + BB bb 11239 12025 11239 12025 BB bb 11314 12025 11314 12025 + BB bb 11320 12025 11320 12025 BB bb 11392 12025 11392 12025 + CC aa 14388 15147 10913 11672 CC aa 14540 15147 11065 11672 + CC aa 14717 15147 11242 11672 CC aa 14989 15147 11514 11672 + CC bb 14325 15147 9640 10462 CC bb 14801 15147 10116 10462 + DD aa 18334 19179 8069 8914 DD aa 18923 19179 8658 8914 + DD aa 18955 19179 8690 8914 DD bb 18220 19179 6195 7154 + DD bb 18385 19179 6360 7154 DD bb 18463 19179 6438 7154 + DD bb 18941 19179 6916 7154 EE aa 16256 17033 5313 6090 + EE aa 16920 17033 5977 6090 EE bb 16265 17033 5803 6571 + EE bb 16404 17033 5942 6571 EE bb 16781 17033 6319 6571 + FF aa 14691 15361 6739 7409 FF aa 14694 15361 6742 7409 + FF aa 14743 15361 6791 7409 FF aa 15153 15361 7201 7409 + FF bb 14423 15361 7269 8207 FF bb 14491 15361 7337 8207 + FF bb 14635 15361 7481 8207 FF bb 14787 15361 7633 8207 + FF bb 15066 15361 7912 8207 FF bb 15259 15361 8105 8207 + GG aa 16073 16707 8280 8914 GG aa 16227 16707 8434 8914 + GG aa 16372 16707 8579 8914 GG aa 16559 16707 8766 8914 + GG bb 15769 16707 9198 10136 GG bb 15778 16707 9207 10136 + GG bb 15863 16707 9292 10136 GG bb 16547 16707 9976 10136 + HH aa 17139 18118 9243 10222 HH aa 17328 18118 9432 10222 + HH aa 17638 18118 9742 10222 HH bb 17155 18118 8948 9911 + HH bb 17388 18118 9181 9911 HH bb 17435 18118 9228 9911 + HH bb 17763 18118 9556 9911 HH bb 17788 18118 9581 9911 + HH bb 17985 18118 9778 9911 II aa 18567 19219 8712 9364 + II aa 18821 19219 8966 9364 II bb 18414 19219 8278 9083 + II bb 18548 19219 8412 9083 II bb 18776 19219 8640 9083 + II bb 18798 19219 8662 9083 II bb 18969 19219 8833 9083 + JJ aa 16452 17351 7949 8848 JJ aa 16583 17351 8080 8848 + JJ aa 17117 17351 8614 8848 JJ aa 17238 17351 8735 8848 + JJ bb 16512 17351 6601 7440 JJ bb 16997 17351 7086 7440 + JJ bb 17015 17351 7104 7440 JJ bb 17094 17351 7183 7440} + +do_execsql_test 1.9.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 + BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 + BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 + CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 + DD aa 14494 DD aa 14494 DD aa 14494 DD bb 14494 DD bb 14494 + DD bb 14494 DD bb 14494 EE aa 9693 EE aa 9693 EE bb 9693 + EE bb 9693 EE bb 9693 FF aa 12239 FF aa 12239 FF aa 12239 + FF aa 12239 FF bb 12239 FF bb 12239 FF bb 12239 FF bb 12239 + FF bb 12239 FF bb 12239 GG aa 12675 GG aa 12675 GG aa 12675 + GG aa 12675 GG bb 12675 GG bb 12675 GG bb 12675 GG bb 12675 + HH aa 15579 HH aa 15579 HH aa 15579 HH bb 15579 HH bb 15579 + HH bb 15579 HH bb 15579 HH bb 15579 HH bb 15579 II aa 13551 + II aa 13551 II bb 13551 II bb 13551 II bb 13551 II bb 13551 + II bb 13551 JJ aa 12883 JJ aa 12883 JJ aa 12883 JJ aa 12883 + JJ bb 12883 JJ bb 12883 JJ bb 12883 JJ bb 12883} + +do_execsql_test 1.9.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 2307 AA aa 2307 AA aa 2307 AA aa 2307 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 7558 BB aa 7558 BB aa 7558 BB aa 7558 + BB aa 7558 BB aa 7558 BB bb 9718 BB bb 9718 BB bb 9718 BB bb 9718 + BB bb 9718 BB bb 9718 CC aa 9294 CC aa 9294 CC aa 9294 CC aa 9294 + CC bb 7589 CC bb 7589 DD aa 4447 DD aa 4447 DD aa 4447 DD bb 5200 + DD bb 5200 DD bb 5200 DD bb 5200 EE aa 4922 EE aa 4922 EE bb 5246 + EE bb 5246 EE bb 5246 FF aa 4702 FF aa 4702 FF aa 4702 FF aa 4702 + FF bb 7317 FF bb 7317 FF bb 7317 FF bb 7317 FF bb 7317 FF bb 7317 + GG aa 7265 GG aa 7265 GG aa 7265 GG aa 7265 GG bb 7973 GG bb 7973 + GG bb 7973 GG bb 7973 HH aa 6717 HH aa 6717 HH aa 6717 HH bb 8314 + HH bb 8314 HH bb 8314 HH bb 8314 HH bb 8314 HH bb 8314 II aa 6493 + II aa 6493 II bb 6834 II bb 6834 II bb 6834 II bb 6834 II bb 6834 + JJ aa 5654 JJ aa 5654 JJ aa 5654 JJ aa 5654 JJ bb 6390 JJ bb 6390 + JJ bb 6390 JJ bb 6390} + +do_execsql_test 1.9.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.9.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 870 BB bb 870 BB bb 870 BB bb 870 + BB bb 870 BB bb 870 CC aa 840 CC aa 840 CC aa 840 CC aa 840 + CC bb 840 CC bb 840 DD aa 845 DD aa 845 DD aa 845 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 777 FF aa 777 FF aa 777 FF aa 777 + FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 + GG aa 938 GG aa 938 GG aa 938 GG aa 938 GG bb 938 GG bb 938 + GG bb 938 GG bb 938 HH aa 979 HH aa 979 HH aa 979 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 963 II bb 963 II bb 963 II bb 963 II bb 963 + JJ aa 899 JJ aa 899 JJ aa 899 JJ aa 899 JJ bb 899 JJ bb 899 + JJ bb 899 JJ bb 899} + +do_execsql_test 1.9.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 247 BB bb 247 BB bb 247 BB bb 247 + BB bb 247 BB bb 247 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 224 + DD bb 224 DD bb 224 DD bb 224 EE aa 113 EE aa 113 EE bb 113 + EE bb 113 EE bb 113 FF aa 113 FF aa 113 FF aa 113 FF aa 113 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 148 HH aa 148 HH aa 148 HH bb 133 + HH bb 133 HH bb 133 HH bb 133 HH bb 133 HH bb 133 II aa 133 + II aa 133 II bb 133 II bb 133 II bb 133 II bb 133 II bb 133 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 113 JJ bb 113 + JJ bb 113 JJ bb 113} + +do_execsql_test 1.9.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 11263 BB aa 11365 BB aa 11613 + BB aa 11626 BB aa 11632 BB aa 11778 BB bb 11185 BB bb 11233 + BB bb 11239 BB bb 11314 BB bb 11320 BB bb 11392 CC aa 14388 + CC aa 14540 CC aa 14717 CC aa 14989 CC bb 14325 CC bb 14801 + DD aa 13649 DD aa 14238 DD aa 14270 DD bb 13535 DD bb 13700 + DD bb 13778 DD bb 14256 EE aa 8916 EE aa 9580 EE bb 8925 + EE bb 9064 EE bb 9441 FF aa 11569 FF aa 11572 FF aa 11621 + FF aa 12031 FF bb 11301 FF bb 11369 FF bb 11513 FF bb 11665 + FF bb 11944 FF bb 12137 GG aa 12041 GG aa 12195 GG aa 12340 + GG aa 12527 GG bb 11737 GG bb 11746 GG bb 11831 GG bb 12515 + HH aa 14600 HH aa 14789 HH aa 15099 HH bb 14616 HH bb 14849 + HH bb 14896 HH bb 15224 HH bb 15249 HH bb 15446 II aa 12899 + II aa 13153 II bb 12746 II bb 12880 II bb 13108 II bb 13130 + II bb 13301 JJ aa 11984 JJ aa 12115 JJ aa 12649 JJ aa 12770 + JJ bb 12044 JJ bb 12529 JJ bb 12547 JJ bb 12626} + +do_execsql_test 1.9.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1373 AA aa 1396 AA aa 2068 AA aa 2084 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 6796 BB aa 6898 BB aa 7146 BB aa 7159 + BB aa 7165 BB aa 7311 BB bb 8878 BB bb 8926 BB bb 8932 BB bb 9007 + BB bb 9013 BB bb 9085 CC aa 8535 CC aa 8687 CC aa 8864 CC aa 9136 + CC bb 6767 CC bb 7243 DD aa 3602 DD aa 4191 DD aa 4223 DD bb 4241 + DD bb 4406 DD bb 4484 DD bb 4962 EE aa 4145 EE aa 4809 EE bb 4478 + EE bb 4617 EE bb 4994 FF aa 4032 FF aa 4035 FF aa 4084 FF aa 4494 + FF bb 6379 FF bb 6447 FF bb 6591 FF bb 6743 FF bb 7022 FF bb 7215 + GG aa 6631 GG aa 6785 GG aa 6930 GG aa 7117 GG bb 7035 GG bb 7044 + GG bb 7129 GG bb 7813 HH aa 5738 HH aa 5927 HH aa 6237 HH bb 7351 + HH bb 7584 HH bb 7631 HH bb 7959 HH bb 7984 HH bb 8181 II aa 5841 + II aa 6095 II bb 6029 II bb 6163 II bb 6391 II bb 6413 II bb 6584 + JJ aa 4755 JJ aa 4886 JJ aa 5420 JJ aa 5541 JJ bb 5551 JJ bb 6036 + JJ bb 6054 JJ bb 6133} + +do_execsql_test 1.9.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND CURRENT ROW ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 + AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 + AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 + AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 + BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 + BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 + BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 + BB bb 11185 12025 8878 9718 BB bb 11233 12025 8926 9718 + BB bb 11239 12025 8932 9718 BB bb 11314 12025 9007 9718 + BB bb 11320 12025 9013 9718 BB bb 11392 12025 9085 9718 + CC aa 14388 15147 8535 9294 CC aa 14540 15147 8687 9294 + CC aa 14717 15147 8864 9294 CC aa 14989 15147 9136 9294 + CC bb 14325 15147 6767 7589 CC bb 14801 15147 7243 7589 + DD aa 13649 14494 3602 4447 DD aa 14238 14494 4191 4447 + DD aa 14270 14494 4223 4447 DD bb 13535 14494 4241 5200 + DD bb 13700 14494 4406 5200 DD bb 13778 14494 4484 5200 + DD bb 14256 14494 4962 5200 EE aa 8916 9693 4145 4922 + EE aa 9580 9693 4809 4922 EE bb 8925 9693 4478 5246 + EE bb 9064 9693 4617 5246 EE bb 9441 9693 4994 5246 + FF aa 11569 12239 4032 4702 FF aa 11572 12239 4035 4702 + FF aa 11621 12239 4084 4702 FF aa 12031 12239 4494 4702 + FF bb 11301 12239 6379 7317 FF bb 11369 12239 6447 7317 + FF bb 11513 12239 6591 7317 FF bb 11665 12239 6743 7317 + FF bb 11944 12239 7022 7317 FF bb 12137 12239 7215 7317 + GG aa 12041 12675 6631 7265 GG aa 12195 12675 6785 7265 + GG aa 12340 12675 6930 7265 GG aa 12527 12675 7117 7265 + GG bb 11737 12675 7035 7973 GG bb 11746 12675 7044 7973 + GG bb 11831 12675 7129 7973 GG bb 12515 12675 7813 7973 + HH aa 14600 15579 5738 6717 HH aa 14789 15579 5927 6717 + HH aa 15099 15579 6237 6717 HH bb 14616 15579 7351 8314 + HH bb 14849 15579 7584 8314 HH bb 14896 15579 7631 8314 + HH bb 15224 15579 7959 8314 HH bb 15249 15579 7984 8314 + HH bb 15446 15579 8181 8314 II aa 12899 13551 5841 6493 + II aa 13153 13551 6095 6493 II bb 12746 13551 6029 6834 + II bb 12880 13551 6163 6834 II bb 13108 13551 6391 6834 + II bb 13130 13551 6413 6834 II bb 13301 13551 6584 6834 + JJ aa 11984 12883 4755 5654 JJ aa 12115 12883 4886 5654 + JJ aa 12649 12883 5420 5654 JJ aa 12770 12883 5541 5654 + JJ bb 12044 12883 5551 6390 JJ bb 12529 12883 6036 6390 + JJ bb 12547 12883 6054 6390 JJ bb 12626 12883 6133 6390} + +do_execsql_test 1.10.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 12025 BB aa 12025 BB aa 12025 + BB aa 12025 BB aa 12025 BB aa 12025 BB bb 12025 BB bb 12025 + BB bb 12025 BB bb 12025 BB bb 12025 BB bb 12025 CC aa 15147 + CC aa 15147 CC aa 15147 CC aa 15147 CC bb 15147 CC bb 15147 + DD aa 19179 DD aa 19179 DD aa 19179 DD bb 19179 DD bb 19179 + DD bb 19179 DD bb 19179 EE aa 17033 EE aa 17033 EE bb 17033 + EE bb 17033 EE bb 17033 FF aa 15361 FF aa 15361 FF aa 15361 + FF aa 15361 FF bb 15361 FF bb 15361 FF bb 15361 FF bb 15361 + FF bb 15361 FF bb 15361 GG aa 16707 GG aa 16707 GG aa 16707 + GG aa 16707 GG bb 16707 GG bb 16707 GG bb 16707 GG bb 16707 + HH aa 18118 HH aa 18118 HH aa 18118 HH bb 18118 HH bb 18118 + HH bb 18118 HH bb 18118 HH bb 18118 HH bb 18118 II aa 19219 + II aa 19219 II bb 19219 II bb 19219 II bb 19219 II bb 19219 + II bb 19219 JJ aa 17351 JJ aa 17351 JJ aa 17351 JJ aa 17351 + JJ bb 17351 JJ bb 17351 JJ bb 17351 JJ bb 17351} + +do_execsql_test 1.10.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 2307 AA aa 2307 AA aa 2307 AA aa 2307 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 7558 BB aa 7558 BB aa 7558 BB aa 7558 + BB aa 7558 BB aa 7558 BB bb 12025 BB bb 12025 BB bb 12025 + BB bb 12025 BB bb 12025 BB bb 12025 CC aa 11672 CC aa 11672 + CC aa 11672 CC aa 11672 CC bb 10462 CC bb 10462 DD aa 8914 + DD aa 8914 DD aa 8914 DD bb 7154 DD bb 7154 DD bb 7154 DD bb 7154 + EE aa 6090 EE aa 6090 EE bb 6571 EE bb 6571 EE bb 6571 FF aa 7409 + FF aa 7409 FF aa 7409 FF aa 7409 FF bb 8207 FF bb 8207 FF bb 8207 + FF bb 8207 FF bb 8207 FF bb 8207 GG aa 8914 GG aa 8914 GG aa 8914 + GG aa 8914 GG bb 10136 GG bb 10136 GG bb 10136 GG bb 10136 + HH aa 10222 HH aa 10222 HH aa 10222 HH bb 9911 HH bb 9911 + HH bb 9911 HH bb 9911 HH bb 9911 HH bb 9911 II aa 9364 II aa 9364 + II bb 9083 II bb 9083 II bb 9083 II bb 9083 II bb 9083 JJ aa 8848 + JJ aa 8848 JJ aa 8848 JJ aa 8848 JJ bb 7440 JJ bb 7440 JJ bb 7440 + JJ bb 7440} + +do_execsql_test 1.10.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.10.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 934 AA bb 934 + AA bb 934 AA bb 934 BB aa 934 BB aa 934 BB aa 934 BB aa 934 + BB aa 934 BB aa 934 BB bb 934 BB bb 934 BB bb 934 BB bb 934 + BB bb 934 BB bb 934 CC aa 870 CC aa 870 CC aa 870 CC aa 870 + CC bb 840 CC bb 840 DD aa 845 DD aa 845 DD aa 845 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 959 EE aa 959 EE bb 959 + EE bb 959 EE bb 959 FF aa 959 FF aa 959 FF aa 959 FF aa 959 + FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 + GG aa 938 GG aa 938 GG aa 938 GG aa 938 GG bb 938 GG bb 938 + GG bb 938 GG bb 938 HH aa 979 HH aa 979 HH aa 979 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 979 II bb 979 II bb 979 II bb 979 II bb 979 + JJ aa 963 JJ aa 963 JJ aa 963 JJ aa 963 JJ bb 899 JJ bb 899 + JJ bb 899 JJ bb 899} + +do_execsql_test 1.10.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 223 AA bb 223 + AA bb 223 AA bb 223 BB aa 223 BB aa 223 BB aa 223 BB aa 223 + BB aa 223 BB aa 223 BB bb 223 BB bb 223 BB bb 223 BB bb 223 + BB bb 223 BB bb 223 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 158 CC bb 158 DD aa 158 DD aa 158 DD aa 158 DD bb 158 + DD bb 158 DD bb 158 DD bb 158 EE aa 113 EE aa 113 EE bb 113 + EE bb 113 EE bb 113 FF aa 113 FF aa 113 FF aa 113 FF aa 113 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 102 HH aa 102 HH aa 102 HH bb 133 + HH bb 133 HH bb 133 HH bb 133 HH bb 133 HH bb 133 II aa 133 + II aa 133 II bb 133 II bb 133 II bb 133 II bb 133 II bb 133 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 113 JJ bb 113 + JJ bb 113 JJ bb 113} + +do_execsql_test 1.10.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 11263 BB aa 11365 BB aa 11613 + BB aa 11626 BB aa 11632 BB aa 11778 BB bb 11185 BB bb 11233 + BB bb 11239 BB bb 11314 BB bb 11320 BB bb 11392 CC aa 14388 + CC aa 14540 CC aa 14717 CC aa 14989 CC bb 14325 CC bb 14801 + DD aa 18334 DD aa 18923 DD aa 18955 DD bb 18220 DD bb 18385 + DD bb 18463 DD bb 18941 EE aa 16256 EE aa 16920 EE bb 16265 + EE bb 16404 EE bb 16781 FF aa 14691 FF aa 14694 FF aa 14743 + FF aa 15153 FF bb 14423 FF bb 14491 FF bb 14635 FF bb 14787 + FF bb 15066 FF bb 15259 GG aa 16073 GG aa 16227 GG aa 16372 + GG aa 16559 GG bb 15769 GG bb 15778 GG bb 15863 GG bb 16547 + HH aa 17139 HH aa 17328 HH aa 17638 HH bb 17155 HH bb 17388 + HH bb 17435 HH bb 17763 HH bb 17788 HH bb 17985 II aa 18567 + II aa 18821 II bb 18414 II bb 18548 II bb 18776 II bb 18798 + II bb 18969 JJ aa 16452 JJ aa 16583 JJ aa 17117 JJ aa 17238 + JJ bb 16512 JJ bb 16997 JJ bb 17015 JJ bb 17094} + +do_execsql_test 1.10.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1373 AA aa 1396 AA aa 2068 AA aa 2084 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 6796 BB aa 6898 BB aa 7146 BB aa 7159 + BB aa 7165 BB aa 7311 BB bb 11185 BB bb 11233 BB bb 11239 + BB bb 11314 BB bb 11320 BB bb 11392 CC aa 10913 CC aa 11065 + CC aa 11242 CC aa 11514 CC bb 9640 CC bb 10116 DD aa 8069 + DD aa 8658 DD aa 8690 DD bb 6195 DD bb 6360 DD bb 6438 DD bb 6916 + EE aa 5313 EE aa 5977 EE bb 5803 EE bb 5942 EE bb 6319 FF aa 6739 + FF aa 6742 FF aa 6791 FF aa 7201 FF bb 7269 FF bb 7337 FF bb 7481 + FF bb 7633 FF bb 7912 FF bb 8105 GG aa 8280 GG aa 8434 GG aa 8579 + GG aa 8766 GG bb 9198 GG bb 9207 GG bb 9292 GG bb 9976 HH aa 9243 + HH aa 9432 HH aa 9742 HH bb 8948 HH bb 9181 HH bb 9228 HH bb 9556 + HH bb 9581 HH bb 9778 II aa 8712 II aa 8966 II bb 8278 II bb 8412 + II bb 8640 II bb 8662 II bb 8833 JJ aa 7949 JJ aa 8080 JJ aa 8614 + JJ aa 8735 JJ bb 6601 JJ bb 7086 JJ bb 7104 JJ bb 7183} + +do_execsql_test 1.10.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 3 PRECEDING AND 0 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 + AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 + AA bb 3815 4685 3815 4685 AA bb 4058 4685 4058 4685 + AA bb 4113 4685 4113 4685 AA bb 4376 4685 4376 4685 + BB aa 11263 12025 6796 7558 BB aa 11365 12025 6898 7558 + BB aa 11613 12025 7146 7558 BB aa 11626 12025 7159 7558 + BB aa 11632 12025 7165 7558 BB aa 11778 12025 7311 7558 + BB bb 11185 12025 11185 12025 BB bb 11233 12025 11233 12025 + BB bb 11239 12025 11239 12025 BB bb 11314 12025 11314 12025 + BB bb 11320 12025 11320 12025 BB bb 11392 12025 11392 12025 + CC aa 14388 15147 10913 11672 CC aa 14540 15147 11065 11672 + CC aa 14717 15147 11242 11672 CC aa 14989 15147 11514 11672 + CC bb 14325 15147 9640 10462 CC bb 14801 15147 10116 10462 + DD aa 18334 19179 8069 8914 DD aa 18923 19179 8658 8914 + DD aa 18955 19179 8690 8914 DD bb 18220 19179 6195 7154 + DD bb 18385 19179 6360 7154 DD bb 18463 19179 6438 7154 + DD bb 18941 19179 6916 7154 EE aa 16256 17033 5313 6090 + EE aa 16920 17033 5977 6090 EE bb 16265 17033 5803 6571 + EE bb 16404 17033 5942 6571 EE bb 16781 17033 6319 6571 + FF aa 14691 15361 6739 7409 FF aa 14694 15361 6742 7409 + FF aa 14743 15361 6791 7409 FF aa 15153 15361 7201 7409 + FF bb 14423 15361 7269 8207 FF bb 14491 15361 7337 8207 + FF bb 14635 15361 7481 8207 FF bb 14787 15361 7633 8207 + FF bb 15066 15361 7912 8207 FF bb 15259 15361 8105 8207 + GG aa 16073 16707 8280 8914 GG aa 16227 16707 8434 8914 + GG aa 16372 16707 8579 8914 GG aa 16559 16707 8766 8914 + GG bb 15769 16707 9198 10136 GG bb 15778 16707 9207 10136 + GG bb 15863 16707 9292 10136 GG bb 16547 16707 9976 10136 + HH aa 17139 18118 9243 10222 HH aa 17328 18118 9432 10222 + HH aa 17638 18118 9742 10222 HH bb 17155 18118 8948 9911 + HH bb 17388 18118 9181 9911 HH bb 17435 18118 9228 9911 + HH bb 17763 18118 9556 9911 HH bb 17788 18118 9581 9911 + HH bb 17985 18118 9778 9911 II aa 18567 19219 8712 9364 + II aa 18821 19219 8966 9364 II bb 18414 19219 8278 9083 + II bb 18548 19219 8412 9083 II bb 18776 19219 8640 9083 + II bb 18798 19219 8662 9083 II bb 18969 19219 8833 9083 + JJ aa 16452 17351 7949 8848 JJ aa 16583 17351 8080 8848 + JJ aa 17117 17351 8614 8848 JJ aa 17238 17351 8735 8848 + JJ bb 16512 17351 6601 7440 JJ bb 16997 17351 7086 7440 + JJ bb 17015 17351 7104 7440 JJ bb 17094 17351 7183 7440} + +do_execsql_test 1.11.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 + AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 + BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 44737 + BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 BB bb 44737 + CC aa 44737 CC aa 44737 CC aa 44737 CC aa 44737 CC bb 44737 + CC bb 44737 DD aa 40052 DD aa 40052 DD aa 40052 DD bb 40052 + DD bb 40052 DD bb 40052 DD bb 40052 EE aa 32712 EE aa 32712 + EE bb 32712 EE bb 32712 EE bb 32712 FF aa 29590 FF aa 29590 + FF aa 29590 FF aa 29590 FF bb 29590 FF bb 29590 FF bb 29590 + FF bb 29590 FF bb 29590 FF bb 29590 GG aa 25558 GG aa 25558 + GG aa 25558 GG aa 25558 GG bb 25558 GG bb 25558 GG bb 25558 + GG bb 25558 HH aa 23019 HH aa 23019 HH aa 23019 HH bb 23019 + HH bb 23019 HH bb 23019 HH bb 23019 HH bb 23019 HH bb 23019 + II aa 17351 II aa 17351 II bb 17351 II bb 17351 II bb 17351 + II bb 17351 II bb 17351 JJ aa 12883 JJ aa 12883 JJ aa 12883 + JJ aa 12883 JJ bb 12883 JJ bb 12883 JJ bb 12883 JJ bb 12883} + +do_execsql_test 1.11.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 + AA bb 44737 AA bb 44737 AA bb 44737 BB aa 44737 BB aa 44737 + BB aa 44737 BB aa 44737 BB aa 44737 BB aa 44737 BB bb 42430 + BB bb 42430 BB bb 42430 BB bb 42430 BB bb 42430 BB bb 42430 + CC aa 40052 CC aa 40052 CC aa 40052 CC aa 40052 CC bb 37179 + CC bb 37179 DD aa 32712 DD aa 32712 DD aa 32712 DD bb 30758 + DD bb 30758 DD bb 30758 DD bb 30758 EE aa 29590 EE aa 29590 + EE bb 28265 EE bb 28265 EE bb 28265 FF aa 25558 FF aa 25558 + FF aa 25558 FF aa 25558 FF bb 24668 FF bb 24668 FF bb 24668 + FF bb 24668 FF bb 24668 FF bb 24668 GG aa 23019 GG aa 23019 + GG aa 23019 GG aa 23019 GG bb 20856 GG bb 20856 GG bb 20856 + GG bb 20856 HH aa 17351 HH aa 17351 HH aa 17351 HH bb 15754 + HH bb 15754 HH bb 15754 HH bb 15754 HH bb 15754 HH bb 15754 + II aa 12883 II aa 12883 II bb 10634 II bb 10634 II bb 10634 + II bb 10634 II bb 10634 JJ aa 7440 JJ aa 7440 JJ aa 7440 + JJ aa 7440 JJ bb 6390 JJ bb 6390 JJ bb 6390 JJ bb 6390} + +do_execsql_test 1.11.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.11.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 979 AA aa 979 AA aa 979 AA aa 979 AA bb 979 AA bb 979 + AA bb 979 AA bb 979 BB aa 979 BB aa 979 BB aa 979 BB aa 979 + BB aa 979 BB aa 979 BB bb 979 BB bb 979 BB bb 979 BB bb 979 + BB bb 979 BB bb 979 CC aa 979 CC aa 979 CC aa 979 CC aa 979 + CC bb 979 CC bb 979 DD aa 979 DD aa 979 DD aa 979 DD bb 979 + DD bb 979 DD bb 979 DD bb 979 EE aa 979 EE aa 979 EE bb 979 + EE bb 979 EE bb 979 FF aa 979 FF aa 979 FF aa 979 FF aa 979 + FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 + GG aa 979 GG aa 979 GG aa 979 GG aa 979 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 979 HH aa 979 HH aa 979 HH bb 979 + HH bb 979 HH bb 979 HH bb 979 HH bb 979 HH bb 979 II aa 979 + II aa 979 II bb 963 II bb 963 II bb 963 II bb 963 II bb 963 + JJ aa 899 JJ aa 899 JJ aa 899 JJ aa 899 JJ bb 899 JJ bb 899 + JJ bb 899 JJ bb 899} + +do_execsql_test 1.11.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 102 AA aa 102 AA aa 102 AA aa 102 AA bb 102 AA bb 102 + AA bb 102 AA bb 102 BB aa 102 BB aa 102 BB aa 102 BB aa 102 + BB aa 102 BB aa 102 BB bb 102 BB bb 102 BB bb 102 BB bb 102 + BB bb 102 BB bb 102 CC aa 102 CC aa 102 CC aa 102 CC aa 102 + CC bb 102 CC bb 102 DD aa 102 DD aa 102 DD aa 102 DD bb 102 + DD bb 102 DD bb 102 DD bb 102 EE aa 102 EE aa 102 EE bb 102 + EE bb 102 EE bb 102 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 102 GG aa 102 GG aa 102 GG aa 102 GG bb 102 GG bb 102 + GG bb 102 GG bb 102 HH aa 113 HH aa 113 HH aa 113 HH bb 113 + HH bb 113 HH bb 113 HH bb 113 HH bb 113 HH bb 113 II aa 113 + II aa 113 II bb 113 II bb 113 II bb 113 II bb 113 II bb 113 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 113 JJ bb 113 + JJ bb 113 JJ bb 113} + +do_execsql_test 1.11.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 43867 + AA bb 44110 AA bb 44165 AA bb 44428 BB aa 43975 BB aa 44077 + BB aa 44325 BB aa 44338 BB aa 44344 BB aa 44490 BB bb 43897 + BB bb 43945 BB bb 43951 BB bb 44026 BB bb 44032 BB bb 44104 + CC aa 43978 CC aa 44130 CC aa 44307 CC aa 44579 CC bb 43915 + CC bb 44391 DD aa 39207 DD aa 39796 DD aa 39828 DD bb 39093 + DD bb 39258 DD bb 39336 DD bb 39814 EE aa 31935 EE aa 32599 + EE bb 31944 EE bb 32083 EE bb 32460 FF aa 28920 FF aa 28923 + FF aa 28972 FF aa 29382 FF bb 28652 FF bb 28720 FF bb 28864 + FF bb 29016 FF bb 29295 FF bb 29488 GG aa 24924 GG aa 25078 + GG aa 25223 GG aa 25410 GG bb 24620 GG bb 24629 GG bb 24714 + GG bb 25398 HH aa 22040 HH aa 22229 HH aa 22539 HH bb 22056 + HH bb 22289 HH bb 22336 HH bb 22664 HH bb 22689 HH bb 22886 + II aa 16699 II aa 16953 II bb 16546 II bb 16680 II bb 16908 + II bb 16930 II bb 17101 JJ aa 11984 JJ aa 12115 JJ aa 12649 + JJ aa 12770 JJ bb 12044 JJ bb 12529 JJ bb 12547 JJ bb 12626} + +do_execsql_test 1.11.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 43867 + AA bb 44110 AA bb 44165 AA bb 44428 BB aa 43975 BB aa 44077 + BB aa 44325 BB aa 44338 BB aa 44344 BB aa 44490 BB bb 41590 + BB bb 41638 BB bb 41644 BB bb 41719 BB bb 41725 BB bb 41797 + CC aa 39293 CC aa 39445 CC aa 39622 CC aa 39894 CC bb 36357 + CC bb 36833 DD aa 31867 DD aa 32456 DD aa 32488 DD bb 29799 + DD bb 29964 DD bb 30042 DD bb 30520 EE aa 28813 EE aa 29477 + EE bb 27497 EE bb 27636 EE bb 28013 FF aa 24888 FF aa 24891 + FF aa 24940 FF aa 25350 FF bb 23730 FF bb 23798 FF bb 23942 + FF bb 24094 FF bb 24373 FF bb 24566 GG aa 22385 GG aa 22539 + GG aa 22684 GG aa 22871 GG bb 19918 GG bb 19927 GG bb 20012 + GG bb 20696 HH aa 16372 HH aa 16561 HH aa 16871 HH bb 14791 + HH bb 15024 HH bb 15071 HH bb 15399 HH bb 15424 HH bb 15621 + II aa 12231 II aa 12485 II bb 9829 II bb 9963 II bb 10191 + II bb 10213 II bb 10384 JJ aa 6541 JJ aa 6672 JJ aa 7206 + JJ aa 7327 JJ bb 5551 JJ bb 6036 JJ bb 6054 JJ bb 6133} + +do_execsql_test 1.11.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 2 PRECEDING AND UNBOUNDED FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 + AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 + AA bb 43867 44737 43867 44737 AA bb 44110 44737 44110 44737 + AA bb 44165 44737 44165 44737 AA bb 44428 44737 44428 44737 + BB aa 43975 44737 43975 44737 BB aa 44077 44737 44077 44737 + BB aa 44325 44737 44325 44737 BB aa 44338 44737 44338 44737 + BB aa 44344 44737 44344 44737 BB aa 44490 44737 44490 44737 + BB bb 43897 44737 41590 42430 BB bb 43945 44737 41638 42430 + BB bb 43951 44737 41644 42430 BB bb 44026 44737 41719 42430 + BB bb 44032 44737 41725 42430 BB bb 44104 44737 41797 42430 + CC aa 43978 44737 39293 40052 CC aa 44130 44737 39445 40052 + CC aa 44307 44737 39622 40052 CC aa 44579 44737 39894 40052 + CC bb 43915 44737 36357 37179 CC bb 44391 44737 36833 37179 + DD aa 39207 40052 31867 32712 DD aa 39796 40052 32456 32712 + DD aa 39828 40052 32488 32712 DD bb 39093 40052 29799 30758 + DD bb 39258 40052 29964 30758 DD bb 39336 40052 30042 30758 + DD bb 39814 40052 30520 30758 EE aa 31935 32712 28813 29590 + EE aa 32599 32712 29477 29590 EE bb 31944 32712 27497 28265 + EE bb 32083 32712 27636 28265 EE bb 32460 32712 28013 28265 + FF aa 28920 29590 24888 25558 FF aa 28923 29590 24891 25558 + FF aa 28972 29590 24940 25558 FF aa 29382 29590 25350 25558 + FF bb 28652 29590 23730 24668 FF bb 28720 29590 23798 24668 + FF bb 28864 29590 23942 24668 FF bb 29016 29590 24094 24668 + FF bb 29295 29590 24373 24668 FF bb 29488 29590 24566 24668 + GG aa 24924 25558 22385 23019 GG aa 25078 25558 22539 23019 + GG aa 25223 25558 22684 23019 GG aa 25410 25558 22871 23019 + GG bb 24620 25558 19918 20856 GG bb 24629 25558 19927 20856 + GG bb 24714 25558 20012 20856 GG bb 25398 25558 20696 20856 + HH aa 22040 23019 16372 17351 HH aa 22229 23019 16561 17351 + HH aa 22539 23019 16871 17351 HH bb 22056 23019 14791 15754 + HH bb 22289 23019 15024 15754 HH bb 22336 23019 15071 15754 + HH bb 22664 23019 15399 15754 HH bb 22689 23019 15424 15754 + HH bb 22886 23019 15621 15754 II aa 16699 17351 12231 12883 + II aa 16953 17351 12485 12883 II bb 16546 17351 9829 10634 + II bb 16680 17351 9963 10634 II bb 16908 17351 10191 10634 + II bb 16930 17351 10213 10634 II bb 17101 17351 10384 10634 + JJ aa 11984 12883 6541 7440 JJ aa 12115 12883 6672 7440 + JJ aa 12649 12883 7206 7440 JJ aa 12770 12883 7327 7440 + JJ bb 12044 12883 5551 6390 JJ bb 12529 12883 6036 6390 + JJ bb 12547 12883 6054 6390 JJ bb 12626 12883 6133 6390} + +do_execsql_test 1.12.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 + BB aa 7340 BB aa 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 + BB bb 7340 BB bb 7340 CC aa 3122 CC aa 3122 CC aa 3122 CC aa 3122 + CC bb 3122 CC bb 3122 DD aa 4032 DD aa 4032 DD aa 4032 DD bb 4032 + DD bb 4032 DD bb 4032 DD bb 4032 EE aa 2539 EE aa 2539 EE bb 2539 + EE bb 2539 EE bb 2539 FF aa 5668 FF aa 5668 FF aa 5668 FF aa 5668 + FF bb 5668 FF bb 5668 FF bb 5668 FF bb 5668 FF bb 5668 FF bb 5668 + GG aa 4468 GG aa 4468 GG aa 4468 GG aa 4468 GG bb 4468 GG bb 4468 + GG bb 4468 GG bb 4468 HH aa 5443 HH aa 5443 HH aa 5443 HH bb 5443 + HH bb 5443 HH bb 5443 HH bb 5443 HH bb 5443 HH bb 5443 II aa 3640 + II aa 3640 II bb 3640 II bb 3640 II bb 3640 II bb 3640 II bb 3640 + JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 3800 JJ bb 3800 + JJ bb 3800 JJ bb 3800} + +do_execsql_test 1.12.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 2307 AA aa 2307 AA aa 2307 AA aa 2307 AA bb 2378 AA bb 2378 + AA bb 2378 AA bb 2378 BB aa 2873 BB aa 2873 BB aa 2873 BB aa 2873 + BB aa 2873 BB aa 2873 BB bb 4467 BB bb 4467 BB bb 4467 BB bb 4467 + BB bb 4467 BB bb 4467 CC aa 1954 CC aa 1954 CC aa 1954 CC aa 1954 + CC bb 1168 CC bb 1168 DD aa 1325 DD aa 1325 DD aa 1325 DD bb 2707 + DD bb 2707 DD bb 2707 DD bb 2707 EE aa 890 EE aa 890 EE bb 1649 + EE bb 1649 EE bb 1649 FF aa 2163 FF aa 2163 FF aa 2163 FF aa 2163 + FF bb 3505 FF bb 3505 FF bb 3505 FF bb 3505 FF bb 3505 FF bb 3505 + GG aa 1597 GG aa 1597 GG aa 1597 GG aa 1597 GG bb 2871 GG bb 2871 + GG bb 2871 GG bb 2871 HH aa 2249 HH aa 2249 HH aa 2249 HH bb 3194 + HH bb 3194 HH bb 3194 HH bb 3194 HH bb 3194 HH bb 3194 II aa 1050 + II aa 1050 II bb 2590 II bb 2590 II bb 2590 II bb 2590 II bb 2590 + JJ aa 2014 JJ aa 2014 JJ aa 2014 JJ aa 2014 JJ bb 1786 JJ bb 1786 + JJ bb 1786 JJ bb 1786} + +do_execsql_test 1.12.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.12.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 870 AA bb 870 + AA bb 870 AA bb 870 BB aa 762 BB aa 762 BB aa 762 BB aa 762 + BB aa 762 BB aa 762 BB bb 840 BB bb 840 BB bb 840 BB bb 840 + BB bb 840 BB bb 840 CC aa 759 CC aa 759 CC aa 759 CC aa 759 + CC bb 822 CC bb 822 DD aa 845 DD aa 845 DD aa 845 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 777 EE aa 777 EE bb 768 + EE bb 768 EE bb 768 FF aa 670 FF aa 670 FF aa 670 FF aa 670 + FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 + GG aa 634 GG aa 634 GG aa 634 GG aa 634 GG bb 938 GG bb 938 + GG bb 938 GG bb 938 HH aa 979 HH aa 979 HH aa 979 HH bb 963 + HH bb 963 HH bb 963 HH bb 963 HH bb 963 HH bb 963 II aa 652 + II aa 652 II bb 805 II bb 805 II bb 805 II bb 805 II bb 805 + JJ aa 899 JJ aa 899 JJ aa 899 JJ aa 899 JJ bb 839 JJ bb 839 + JJ bb 839 JJ bb 839} + +do_execsql_test 1.12.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 309 AA bb 309 + AA bb 309 AA bb 309 BB aa 247 BB aa 247 BB aa 247 BB aa 247 + BB aa 247 BB aa 247 BB bb 633 BB bb 633 BB bb 633 BB bb 633 + BB bb 633 BB bb 633 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 346 CC bb 346 DD aa 224 DD aa 224 DD aa 224 DD bb 238 + DD bb 238 DD bb 238 DD bb 238 EE aa 113 EE aa 113 EE bb 252 + EE bb 252 EE bb 252 FF aa 208 FF aa 208 FF aa 208 FF aa 208 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 148 GG aa 148 GG aa 148 GG aa 148 GG bb 160 GG bb 160 + GG bb 160 GG bb 160 HH aa 480 HH aa 480 HH aa 480 HH bb 133 + HH bb 133 HH bb 133 HH bb 133 HH bb 133 HH bb 133 II aa 398 + II aa 398 II bb 250 II bb 250 II bb 250 II bb 250 II bb 250 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 257 JJ bb 257 + JJ bb 257 JJ bb 257} + +do_execsql_test 1.12.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 6578 BB aa 6680 BB aa 6928 BB aa 6941 + BB aa 6947 BB aa 7093 BB bb 6500 BB bb 6548 BB bb 6554 BB bb 6629 + BB bb 6635 BB bb 6707 CC aa 2363 CC aa 2515 CC aa 2692 CC aa 2964 + CC bb 2300 CC bb 2776 DD aa 3187 DD aa 3776 DD aa 3808 DD bb 3073 + DD bb 3238 DD bb 3316 DD bb 3794 EE aa 1762 EE aa 2426 EE bb 1771 + EE bb 1910 EE bb 2287 FF aa 4998 FF aa 5001 FF aa 5050 FF aa 5460 + FF bb 4730 FF bb 4798 FF bb 4942 FF bb 5094 FF bb 5373 FF bb 5566 + GG aa 3834 GG aa 3988 GG aa 4133 GG aa 4320 GG bb 3530 GG bb 3539 + GG bb 3624 GG bb 4308 HH aa 4464 HH aa 4653 HH aa 4963 HH bb 4480 + HH bb 4713 HH bb 4760 HH bb 5088 HH bb 5113 HH bb 5310 II aa 2988 + II aa 3242 II bb 2835 II bb 2969 II bb 3197 II bb 3219 II bb 3390 + JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 2961 JJ bb 3446 + JJ bb 3464 JJ bb 3543} + +do_execsql_test 1.12.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1373 AA aa 1396 AA aa 2068 AA aa 2084 AA bb 1508 AA bb 1751 + AA bb 1806 AA bb 2069 BB aa 2111 BB aa 2213 BB aa 2461 BB aa 2474 + BB aa 2480 BB aa 2626 BB bb 3627 BB bb 3675 BB bb 3681 BB bb 3756 + BB bb 3762 BB bb 3834 CC aa 1195 CC aa 1347 CC aa 1524 CC aa 1796 + CC bb 346 CC bb 822 DD aa 480 DD aa 1069 DD aa 1101 DD bb 1748 + DD bb 1913 DD bb 1991 DD bb 2469 EE aa 113 EE aa 777 EE bb 881 + EE bb 1020 EE bb 1397 FF aa 1493 FF aa 1496 FF aa 1545 FF aa 1955 + FF bb 2567 FF bb 2635 FF bb 2779 FF bb 2931 FF bb 3210 FF bb 3403 + GG aa 963 GG aa 1117 GG aa 1262 GG aa 1449 GG bb 1933 GG bb 1942 + GG bb 2027 GG bb 2711 HH aa 1270 HH aa 1459 HH aa 1769 HH bb 2231 + HH bb 2464 HH bb 2511 HH bb 2839 HH bb 2864 HH bb 3061 II aa 398 + II aa 652 II bb 1785 II bb 1919 II bb 2147 II bb 2169 II bb 2340 + JJ aa 1115 JJ aa 1246 JJ aa 1780 JJ aa 1901 JJ bb 947 JJ bb 1432 + JJ bb 1450 JJ bb 1529} + +do_execsql_test 1.12.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 0 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 + AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 + AA bb 3815 4685 1508 2378 AA bb 4058 4685 1751 2378 + AA bb 4113 4685 1806 2378 AA bb 4376 4685 2069 2378 + BB aa 6578 7340 2111 2873 BB aa 6680 7340 2213 2873 + BB aa 6928 7340 2461 2873 BB aa 6941 7340 2474 2873 + BB aa 6947 7340 2480 2873 BB aa 7093 7340 2626 2873 + BB bb 6500 7340 3627 4467 BB bb 6548 7340 3675 4467 + BB bb 6554 7340 3681 4467 BB bb 6629 7340 3756 4467 + BB bb 6635 7340 3762 4467 BB bb 6707 7340 3834 4467 + CC aa 2363 3122 1195 1954 CC aa 2515 3122 1347 1954 + CC aa 2692 3122 1524 1954 CC aa 2964 3122 1796 1954 + CC bb 2300 3122 346 1168 CC bb 2776 3122 822 1168 + DD aa 3187 4032 480 1325 DD aa 3776 4032 1069 1325 + DD aa 3808 4032 1101 1325 DD bb 3073 4032 1748 2707 + DD bb 3238 4032 1913 2707 DD bb 3316 4032 1991 2707 + DD bb 3794 4032 2469 2707 EE aa 1762 2539 113 890 + EE aa 2426 2539 777 890 EE bb 1771 2539 881 1649 + EE bb 1910 2539 1020 1649 EE bb 2287 2539 1397 1649 + FF aa 4998 5668 1493 2163 FF aa 5001 5668 1496 2163 + FF aa 5050 5668 1545 2163 FF aa 5460 5668 1955 2163 + FF bb 4730 5668 2567 3505 FF bb 4798 5668 2635 3505 + FF bb 4942 5668 2779 3505 FF bb 5094 5668 2931 3505 + FF bb 5373 5668 3210 3505 FF bb 5566 5668 3403 3505 + GG aa 3834 4468 963 1597 GG aa 3988 4468 1117 1597 + GG aa 4133 4468 1262 1597 GG aa 4320 4468 1449 1597 + GG bb 3530 4468 1933 2871 GG bb 3539 4468 1942 2871 + GG bb 3624 4468 2027 2871 GG bb 4308 4468 2711 2871 + HH aa 4464 5443 1270 2249 HH aa 4653 5443 1459 2249 + HH aa 4963 5443 1769 2249 HH bb 4480 5443 2231 3194 + HH bb 4713 5443 2464 3194 HH bb 4760 5443 2511 3194 + HH bb 5088 5443 2839 3194 HH bb 5113 5443 2864 3194 + HH bb 5310 5443 3061 3194 II aa 2988 3640 398 1050 + II aa 3242 3640 652 1050 II bb 2835 3640 1785 2590 + II bb 2969 3640 1919 2590 II bb 3197 3640 2147 2590 + II bb 3219 3640 2169 2590 II bb 3390 3640 2340 2590 + JJ aa 2901 3800 1115 2014 JJ aa 3032 3800 1246 2014 + JJ aa 3566 3800 1780 2014 JJ aa 3687 3800 1901 2014 + JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 + JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} + +do_execsql_test 1.13.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 12025 AA aa 12025 AA aa 12025 AA aa 12025 AA bb 12025 + AA bb 12025 AA bb 12025 AA bb 12025 BB aa 10462 BB aa 10462 + BB aa 10462 BB aa 10462 BB aa 10462 BB aa 10462 BB bb 10462 + BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 BB bb 10462 + CC aa 7154 CC aa 7154 CC aa 7154 CC aa 7154 CC bb 7154 CC bb 7154 + DD aa 6571 DD aa 6571 DD aa 6571 DD bb 6571 DD bb 6571 DD bb 6571 + DD bb 6571 EE aa 8207 EE aa 8207 EE bb 8207 EE bb 8207 EE bb 8207 + FF aa 10136 FF aa 10136 FF aa 10136 FF aa 10136 FF bb 10136 + FF bb 10136 FF bb 10136 FF bb 10136 FF bb 10136 FF bb 10136 + GG aa 9911 GG aa 9911 GG aa 9911 GG aa 9911 GG bb 9911 GG bb 9911 + GG bb 9911 GG bb 9911 HH aa 9083 HH aa 9083 HH aa 9083 HH bb 9083 + HH bb 9083 HH bb 9083 HH bb 9083 HH bb 9083 HH bb 9083 II aa 7440 + II aa 7440 II bb 7440 II bb 7440 II bb 7440 II bb 7440 II bb 7440 + JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 3800 JJ bb 3800 + JJ bb 3800 JJ bb 3800} + +do_execsql_test 1.13.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 5251 AA bb 5251 + AA bb 5251 AA bb 5251 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 + BB aa 7340 BB aa 7340 BB bb 6421 BB bb 6421 BB bb 6421 BB bb 6421 + BB bb 6421 BB bb 6421 CC aa 3122 CC aa 3122 CC aa 3122 CC aa 3122 + CC bb 2493 CC bb 2493 DD aa 4032 DD aa 4032 DD aa 4032 DD bb 3597 + DD bb 3597 DD bb 3597 DD bb 3597 EE aa 2539 EE aa 2539 EE bb 3812 + EE bb 3812 EE bb 3812 FF aa 5668 FF aa 5668 FF aa 5668 FF aa 5668 + FF bb 5102 FF bb 5102 FF bb 5102 FF bb 5102 FF bb 5102 FF bb 5102 + GG aa 4468 GG aa 4468 GG aa 4468 GG aa 4468 GG bb 5120 GG bb 5120 + GG bb 5120 GG bb 5120 HH aa 5443 HH aa 5443 HH aa 5443 HH bb 4244 + HH bb 4244 HH bb 4244 HH bb 4244 HH bb 4244 HH bb 4244 II aa 3640 + II aa 3640 II bb 4604 II bb 4604 II bb 4604 II bb 4604 II bb 4604 + JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 1786 JJ bb 1786 + JJ bb 1786 JJ bb 1786} + +do_execsql_test 1.13.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.13.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 870 AA bb 870 + AA bb 870 AA bb 870 BB aa 840 BB aa 840 BB aa 840 BB aa 840 + BB aa 840 BB aa 840 BB bb 840 BB bb 840 BB bb 840 BB bb 840 + BB bb 840 BB bb 840 CC aa 822 CC aa 822 CC aa 822 CC aa 822 + CC bb 845 CC bb 845 DD aa 959 DD aa 959 DD aa 959 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 777 EE aa 777 EE bb 768 + EE bb 768 EE bb 768 FF aa 938 FF aa 938 FF aa 938 FF aa 938 + FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 + GG aa 938 GG aa 938 GG aa 938 GG aa 938 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 979 HH aa 979 HH aa 979 HH bb 963 + HH bb 963 HH bb 963 HH bb 963 HH bb 963 HH bb 963 II aa 805 + II aa 805 II bb 899 II bb 899 II bb 899 II bb 899 II bb 899 + JJ aa 899 JJ aa 899 JJ aa 899 JJ aa 899 JJ bb 839 JJ bb 839 + JJ bb 839 JJ bb 839} + +do_execsql_test 1.13.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 247 AA bb 247 + AA bb 247 AA bb 247 BB aa 247 BB aa 247 BB aa 247 BB aa 247 + BB aa 247 BB aa 247 BB bb 158 BB bb 158 BB bb 158 BB bb 158 + BB bb 158 BB bb 158 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 224 CC bb 224 DD aa 224 DD aa 224 DD aa 224 DD bb 113 + DD bb 113 DD bb 113 DD bb 113 EE aa 113 EE aa 113 EE bb 208 + EE bb 208 EE bb 208 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 148 GG aa 148 GG aa 148 GG aa 148 GG bb 160 GG bb 160 + GG bb 160 GG bb 160 HH aa 133 HH aa 133 HH aa 133 HH bb 133 + HH bb 133 HH bb 133 HH bb 133 HH bb 133 HH bb 133 II aa 250 + II aa 250 II bb 113 II bb 113 II bb 113 II bb 113 II bb 113 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 257 JJ bb 257 + JJ bb 257 JJ bb 257} + +do_execsql_test 1.13.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 11091 AA aa 11114 AA aa 11786 AA aa 11802 AA bb 11155 + AA bb 11398 AA bb 11453 AA bb 11716 BB aa 9700 BB aa 9802 + BB aa 10050 BB aa 10063 BB aa 10069 BB aa 10215 BB bb 9622 + BB bb 9670 BB bb 9676 BB bb 9751 BB bb 9757 BB bb 9829 CC aa 6395 + CC aa 6547 CC aa 6724 CC aa 6996 CC bb 6332 CC bb 6808 DD aa 5726 + DD aa 6315 DD aa 6347 DD bb 5612 DD bb 5777 DD bb 5855 DD bb 6333 + EE aa 7430 EE aa 8094 EE bb 7439 EE bb 7578 EE bb 7955 FF aa 9466 + FF aa 9469 FF aa 9518 FF aa 9928 FF bb 9198 FF bb 9266 FF bb 9410 + FF bb 9562 FF bb 9841 FF bb 10034 GG aa 9277 GG aa 9431 + GG aa 9576 GG aa 9763 GG bb 8973 GG bb 8982 GG bb 9067 GG bb 9751 + HH aa 8104 HH aa 8293 HH aa 8603 HH bb 8120 HH bb 8353 HH bb 8400 + HH bb 8728 HH bb 8753 HH bb 8950 II aa 6788 II aa 7042 II bb 6635 + II bb 6769 II bb 6997 II bb 7019 II bb 7190 JJ aa 2901 JJ aa 3032 + JJ aa 3566 JJ aa 3687 JJ bb 2961 JJ bb 3446 JJ bb 3464 JJ bb 3543} + +do_execsql_test 1.13.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 4381 AA bb 4624 + AA bb 4679 AA bb 4942 BB aa 6578 BB aa 6680 BB aa 6928 BB aa 6941 + BB aa 6947 BB aa 7093 BB bb 5581 BB bb 5629 BB bb 5635 BB bb 5710 + BB bb 5716 BB bb 5788 CC aa 2363 CC aa 2515 CC aa 2692 CC aa 2964 + CC bb 1671 CC bb 2147 DD aa 3187 DD aa 3776 DD aa 3808 DD bb 2638 + DD bb 2803 DD bb 2881 DD bb 3359 EE aa 1762 EE aa 2426 EE bb 3044 + EE bb 3183 EE bb 3560 FF aa 4998 FF aa 5001 FF aa 5050 FF aa 5460 + FF bb 4164 FF bb 4232 FF bb 4376 FF bb 4528 FF bb 4807 FF bb 5000 + GG aa 3834 GG aa 3988 GG aa 4133 GG aa 4320 GG bb 4182 GG bb 4191 + GG bb 4276 GG bb 4960 HH aa 4464 HH aa 4653 HH aa 4963 HH bb 3281 + HH bb 3514 HH bb 3561 HH bb 3889 HH bb 3914 HH bb 4111 II aa 2988 + II aa 3242 II bb 3799 II bb 3933 II bb 4161 II bb 4183 II bb 4354 + JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 JJ bb 1432 + JJ bb 1450 JJ bb 1529} + +do_execsql_test 1.13.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 11091 12025 3751 4685 AA aa 11114 12025 3774 4685 + AA aa 11786 12025 4446 4685 AA aa 11802 12025 4462 4685 + AA bb 11155 12025 4381 5251 AA bb 11398 12025 4624 5251 + AA bb 11453 12025 4679 5251 AA bb 11716 12025 4942 5251 + BB aa 9700 10462 6578 7340 BB aa 9802 10462 6680 7340 + BB aa 10050 10462 6928 7340 BB aa 10063 10462 6941 7340 + BB aa 10069 10462 6947 7340 BB aa 10215 10462 7093 7340 + BB bb 9622 10462 5581 6421 BB bb 9670 10462 5629 6421 + BB bb 9676 10462 5635 6421 BB bb 9751 10462 5710 6421 + BB bb 9757 10462 5716 6421 BB bb 9829 10462 5788 6421 + CC aa 6395 7154 2363 3122 CC aa 6547 7154 2515 3122 + CC aa 6724 7154 2692 3122 CC aa 6996 7154 2964 3122 + CC bb 6332 7154 1671 2493 CC bb 6808 7154 2147 2493 + DD aa 5726 6571 3187 4032 DD aa 6315 6571 3776 4032 + DD aa 6347 6571 3808 4032 DD bb 5612 6571 2638 3597 + DD bb 5777 6571 2803 3597 DD bb 5855 6571 2881 3597 + DD bb 6333 6571 3359 3597 EE aa 7430 8207 1762 2539 + EE aa 8094 8207 2426 2539 EE bb 7439 8207 3044 3812 + EE bb 7578 8207 3183 3812 EE bb 7955 8207 3560 3812 + FF aa 9466 10136 4998 5668 FF aa 9469 10136 5001 5668 + FF aa 9518 10136 5050 5668 FF aa 9928 10136 5460 5668 + FF bb 9198 10136 4164 5102 FF bb 9266 10136 4232 5102 + FF bb 9410 10136 4376 5102 FF bb 9562 10136 4528 5102 + FF bb 9841 10136 4807 5102 FF bb 10034 10136 5000 5102 + GG aa 9277 9911 3834 4468 GG aa 9431 9911 3988 4468 + GG aa 9576 9911 4133 4468 GG aa 9763 9911 4320 4468 + GG bb 8973 9911 4182 5120 GG bb 8982 9911 4191 5120 + GG bb 9067 9911 4276 5120 GG bb 9751 9911 4960 5120 + HH aa 8104 9083 4464 5443 HH aa 8293 9083 4653 5443 + HH aa 8603 9083 4963 5443 HH bb 8120 9083 3281 4244 + HH bb 8353 9083 3514 4244 HH bb 8400 9083 3561 4244 + HH bb 8728 9083 3889 4244 HH bb 8753 9083 3914 4244 + HH bb 8950 9083 4111 4244 II aa 6788 7440 2988 3640 + II aa 7042 7440 3242 3640 II bb 6635 7440 3799 4604 + II bb 6769 7440 3933 4604 II bb 6997 7440 4161 4604 + II bb 7019 7440 4183 4604 II bb 7190 7440 4354 4604 + JJ aa 2901 3800 2901 3800 JJ aa 3032 3800 3032 3800 + JJ aa 3566 3800 3566 3800 JJ aa 3687 3800 3687 3800 + JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 + JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} + +do_execsql_test 1.14.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 + AA bb 44737 AA bb 44737 AA bb 44737 BB aa 40052 BB aa 40052 + BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 40052 + BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 + CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 32712 + CC bb 32712 DD aa 29590 DD aa 29590 DD aa 29590 DD bb 29590 + DD bb 29590 DD bb 29590 DD bb 29590 EE aa 25558 EE aa 25558 + EE bb 25558 EE bb 25558 EE bb 25558 FF aa 23019 FF aa 23019 + FF aa 23019 FF aa 23019 FF bb 23019 FF bb 23019 FF bb 23019 + FF bb 23019 FF bb 23019 FF bb 23019 GG aa 17351 GG aa 17351 + GG aa 17351 GG aa 17351 GG bb 17351 GG bb 17351 GG bb 17351 + GG bb 17351 HH aa 12883 HH aa 12883 HH aa 12883 HH bb 12883 + HH bb 12883 HH bb 12883 HH bb 12883 HH bb 12883 HH bb 12883 + II aa 7440 II aa 7440 II bb 7440 II bb 7440 II bb 7440 II bb 7440 + II bb 7440 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 3800 + JJ bb 3800 JJ bb 3800 JJ bb 3800} + +do_execsql_test 1.14.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 42430 + AA bb 42430 AA bb 42430 AA bb 42430 BB aa 40052 BB aa 40052 + BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 37179 + BB bb 37179 BB bb 37179 BB bb 37179 BB bb 37179 BB bb 37179 + CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 30758 + CC bb 30758 DD aa 29590 DD aa 29590 DD aa 29590 DD bb 28265 + DD bb 28265 DD bb 28265 DD bb 28265 EE aa 25558 EE aa 25558 + EE bb 24668 EE bb 24668 EE bb 24668 FF aa 23019 FF aa 23019 + FF aa 23019 FF aa 23019 FF bb 20856 FF bb 20856 FF bb 20856 + FF bb 20856 FF bb 20856 FF bb 20856 GG aa 17351 GG aa 17351 + GG aa 17351 GG aa 17351 GG bb 15754 GG bb 15754 GG bb 15754 + GG bb 15754 HH aa 12883 HH aa 12883 HH aa 12883 HH bb 10634 + HH bb 10634 HH bb 10634 HH bb 10634 HH bb 10634 HH bb 10634 + II aa 7440 II aa 7440 II bb 6390 II bb 6390 II bb 6390 II bb 6390 + II bb 6390 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 1786 + JJ bb 1786 JJ bb 1786 JJ bb 1786} + +do_execsql_test 1.14.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.14.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 979 AA aa 979 AA aa 979 AA aa 979 AA bb 979 AA bb 979 + AA bb 979 AA bb 979 BB aa 979 BB aa 979 BB aa 979 BB aa 979 + BB aa 979 BB aa 979 BB bb 979 BB bb 979 BB bb 979 BB bb 979 + BB bb 979 BB bb 979 CC aa 979 CC aa 979 CC aa 979 CC aa 979 + CC bb 979 CC bb 979 DD aa 979 DD aa 979 DD aa 979 DD bb 979 + DD bb 979 DD bb 979 DD bb 979 EE aa 979 EE aa 979 EE bb 979 + EE bb 979 EE bb 979 FF aa 979 FF aa 979 FF aa 979 FF aa 979 + FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 + GG aa 979 GG aa 979 GG aa 979 GG aa 979 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 979 HH aa 979 HH aa 979 HH bb 963 + HH bb 963 HH bb 963 HH bb 963 HH bb 963 HH bb 963 II aa 899 + II aa 899 II bb 899 II bb 899 II bb 899 II bb 899 II bb 899 + JJ aa 899 JJ aa 899 JJ aa 899 JJ aa 899 JJ bb 839 JJ bb 839 + JJ bb 839 JJ bb 839} + +do_execsql_test 1.14.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 102 AA aa 102 AA aa 102 AA aa 102 AA bb 102 AA bb 102 + AA bb 102 AA bb 102 BB aa 102 BB aa 102 BB aa 102 BB aa 102 + BB aa 102 BB aa 102 BB bb 102 BB bb 102 BB bb 102 BB bb 102 + BB bb 102 BB bb 102 CC aa 102 CC aa 102 CC aa 102 CC aa 102 + CC bb 102 CC bb 102 DD aa 102 DD aa 102 DD aa 102 DD bb 102 + DD bb 102 DD bb 102 DD bb 102 EE aa 102 EE aa 102 EE bb 102 + EE bb 102 EE bb 102 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 113 GG aa 113 GG aa 113 GG aa 113 GG bb 113 GG bb 113 + GG bb 113 GG bb 113 HH aa 113 HH aa 113 HH aa 113 HH bb 113 + HH bb 113 HH bb 113 HH bb 113 HH bb 113 HH bb 113 II aa 113 + II aa 113 II bb 113 II bb 113 II bb 113 II bb 113 II bb 113 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 257 JJ bb 257 + JJ bb 257 JJ bb 257} + +do_execsql_test 1.14.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 43867 + AA bb 44110 AA bb 44165 AA bb 44428 BB aa 39290 BB aa 39392 + BB aa 39640 BB aa 39653 BB aa 39659 BB aa 39805 BB bb 39212 + BB bb 39260 BB bb 39266 BB bb 39341 BB bb 39347 BB bb 39419 + CC aa 31953 CC aa 32105 CC aa 32282 CC aa 32554 CC bb 31890 + CC bb 32366 DD aa 28745 DD aa 29334 DD aa 29366 DD bb 28631 + DD bb 28796 DD bb 28874 DD bb 29352 EE aa 24781 EE aa 25445 + EE bb 24790 EE bb 24929 EE bb 25306 FF aa 22349 FF aa 22352 + FF aa 22401 FF aa 22811 FF bb 22081 FF bb 22149 FF bb 22293 + FF bb 22445 FF bb 22724 FF bb 22917 GG aa 16717 GG aa 16871 + GG aa 17016 GG aa 17203 GG bb 16413 GG bb 16422 GG bb 16507 + GG bb 17191 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 11920 + HH bb 12153 HH bb 12200 HH bb 12528 HH bb 12553 HH bb 12750 + II aa 6788 II aa 7042 II bb 6635 II bb 6769 II bb 6997 II bb 7019 + II bb 7190 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 2961 + JJ bb 3446 JJ bb 3464 JJ bb 3543} + +do_execsql_test 1.14.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 41560 + AA bb 41803 AA bb 41858 AA bb 42121 BB aa 39290 BB aa 39392 + BB aa 39640 BB aa 39653 BB aa 39659 BB aa 39805 BB bb 36339 + BB bb 36387 BB bb 36393 BB bb 36468 BB bb 36474 BB bb 36546 + CC aa 31953 CC aa 32105 CC aa 32282 CC aa 32554 CC bb 29936 + CC bb 30412 DD aa 28745 DD aa 29334 DD aa 29366 DD bb 27306 + DD bb 27471 DD bb 27549 DD bb 28027 EE aa 24781 EE aa 25445 + EE bb 23900 EE bb 24039 EE bb 24416 FF aa 22349 FF aa 22352 + FF aa 22401 FF aa 22811 FF bb 19918 FF bb 19986 FF bb 20130 + FF bb 20282 FF bb 20561 FF bb 20754 GG aa 16717 GG aa 16871 + GG aa 17016 GG aa 17203 GG bb 14816 GG bb 14825 GG bb 14910 + GG bb 15594 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 9671 + HH bb 9904 HH bb 9951 HH bb 10279 HH bb 10304 HH bb 10501 + II aa 6788 II aa 7042 II bb 5585 II bb 5719 II bb 5947 II bb 5969 + II bb 6140 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 + JJ bb 1432 JJ bb 1450 JJ bb 1529} + +do_execsql_test 1.14.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND 100 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 + AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 + AA bb 43867 44737 41560 42430 AA bb 44110 44737 41803 42430 + AA bb 44165 44737 41858 42430 AA bb 44428 44737 42121 42430 + BB aa 39290 40052 39290 40052 BB aa 39392 40052 39392 40052 + BB aa 39640 40052 39640 40052 BB aa 39653 40052 39653 40052 + BB aa 39659 40052 39659 40052 BB aa 39805 40052 39805 40052 + BB bb 39212 40052 36339 37179 BB bb 39260 40052 36387 37179 + BB bb 39266 40052 36393 37179 BB bb 39341 40052 36468 37179 + BB bb 39347 40052 36474 37179 BB bb 39419 40052 36546 37179 + CC aa 31953 32712 31953 32712 CC aa 32105 32712 32105 32712 + CC aa 32282 32712 32282 32712 CC aa 32554 32712 32554 32712 + CC bb 31890 32712 29936 30758 CC bb 32366 32712 30412 30758 + DD aa 28745 29590 28745 29590 DD aa 29334 29590 29334 29590 + DD aa 29366 29590 29366 29590 DD bb 28631 29590 27306 28265 + DD bb 28796 29590 27471 28265 DD bb 28874 29590 27549 28265 + DD bb 29352 29590 28027 28265 EE aa 24781 25558 24781 25558 + EE aa 25445 25558 25445 25558 EE bb 24790 25558 23900 24668 + EE bb 24929 25558 24039 24668 EE bb 25306 25558 24416 24668 + FF aa 22349 23019 22349 23019 FF aa 22352 23019 22352 23019 + FF aa 22401 23019 22401 23019 FF aa 22811 23019 22811 23019 + FF bb 22081 23019 19918 20856 FF bb 22149 23019 19986 20856 + FF bb 22293 23019 20130 20856 FF bb 22445 23019 20282 20856 + FF bb 22724 23019 20561 20856 FF bb 22917 23019 20754 20856 + GG aa 16717 17351 16717 17351 GG aa 16871 17351 16871 17351 + GG aa 17016 17351 17016 17351 GG aa 17203 17351 17203 17351 + GG bb 16413 17351 14816 15754 GG bb 16422 17351 14825 15754 + GG bb 16507 17351 14910 15754 GG bb 17191 17351 15594 15754 + HH aa 11904 12883 11904 12883 HH aa 12093 12883 12093 12883 + HH aa 12403 12883 12403 12883 HH bb 11920 12883 9671 10634 + HH bb 12153 12883 9904 10634 HH bb 12200 12883 9951 10634 + HH bb 12528 12883 10279 10634 HH bb 12553 12883 10304 10634 + HH bb 12750 12883 10501 10634 II aa 6788 7440 6788 7440 + II aa 7042 7440 7042 7440 II bb 6635 7440 5585 6390 + II bb 6769 7440 5719 6390 II bb 6997 7440 5947 6390 + II bb 7019 7440 5969 6390 II bb 7190 7440 6140 6390 + JJ aa 2901 3800 2901 3800 JJ aa 3032 3800 3032 3800 + JJ aa 3566 3800 3566 3800 JJ aa 3687 3800 3687 3800 + JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 + JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} + +do_execsql_test 1.15.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 44737 + AA bb 44737 AA bb 44737 AA bb 44737 BB aa 40052 BB aa 40052 + BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 40052 + BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 BB bb 40052 + CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 32712 + CC bb 32712 DD aa 29590 DD aa 29590 DD aa 29590 DD bb 29590 + DD bb 29590 DD bb 29590 DD bb 29590 EE aa 25558 EE aa 25558 + EE bb 25558 EE bb 25558 EE bb 25558 FF aa 23019 FF aa 23019 + FF aa 23019 FF aa 23019 FF bb 23019 FF bb 23019 FF bb 23019 + FF bb 23019 FF bb 23019 FF bb 23019 GG aa 17351 GG aa 17351 + GG aa 17351 GG aa 17351 GG bb 17351 GG bb 17351 GG bb 17351 + GG bb 17351 HH aa 12883 HH aa 12883 HH aa 12883 HH bb 12883 + HH bb 12883 HH bb 12883 HH bb 12883 HH bb 12883 HH bb 12883 + II aa 7440 II aa 7440 II bb 7440 II bb 7440 II bb 7440 II bb 7440 + II bb 7440 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 3800 + JJ bb 3800 JJ bb 3800 JJ bb 3800} + +do_execsql_test 1.15.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 44737 AA aa 44737 AA aa 44737 AA aa 44737 AA bb 42430 + AA bb 42430 AA bb 42430 AA bb 42430 BB aa 40052 BB aa 40052 + BB aa 40052 BB aa 40052 BB aa 40052 BB aa 40052 BB bb 37179 + BB bb 37179 BB bb 37179 BB bb 37179 BB bb 37179 BB bb 37179 + CC aa 32712 CC aa 32712 CC aa 32712 CC aa 32712 CC bb 30758 + CC bb 30758 DD aa 29590 DD aa 29590 DD aa 29590 DD bb 28265 + DD bb 28265 DD bb 28265 DD bb 28265 EE aa 25558 EE aa 25558 + EE bb 24668 EE bb 24668 EE bb 24668 FF aa 23019 FF aa 23019 + FF aa 23019 FF aa 23019 FF bb 20856 FF bb 20856 FF bb 20856 + FF bb 20856 FF bb 20856 FF bb 20856 GG aa 17351 GG aa 17351 + GG aa 17351 GG aa 17351 GG bb 15754 GG bb 15754 GG bb 15754 + GG bb 15754 HH aa 12883 HH aa 12883 HH aa 12883 HH bb 10634 + HH bb 10634 HH bb 10634 HH bb 10634 HH bb 10634 HH bb 10634 + II aa 7440 II aa 7440 II bb 6390 II bb 6390 II bb 6390 II bb 6390 + II bb 6390 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 1786 + JJ bb 1786 JJ bb 1786 JJ bb 1786} + +do_execsql_test 1.15.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.15.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 979 AA aa 979 AA aa 979 AA aa 979 AA bb 979 AA bb 979 + AA bb 979 AA bb 979 BB aa 979 BB aa 979 BB aa 979 BB aa 979 + BB aa 979 BB aa 979 BB bb 979 BB bb 979 BB bb 979 BB bb 979 + BB bb 979 BB bb 979 CC aa 979 CC aa 979 CC aa 979 CC aa 979 + CC bb 979 CC bb 979 DD aa 979 DD aa 979 DD aa 979 DD bb 979 + DD bb 979 DD bb 979 DD bb 979 EE aa 979 EE aa 979 EE bb 979 + EE bb 979 EE bb 979 FF aa 979 FF aa 979 FF aa 979 FF aa 979 + FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 + GG aa 979 GG aa 979 GG aa 979 GG aa 979 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 979 HH aa 979 HH aa 979 HH bb 963 + HH bb 963 HH bb 963 HH bb 963 HH bb 963 HH bb 963 II aa 899 + II aa 899 II bb 899 II bb 899 II bb 899 II bb 899 II bb 899 + JJ aa 899 JJ aa 899 JJ aa 899 JJ aa 899 JJ bb 839 JJ bb 839 + JJ bb 839 JJ bb 839} + +do_execsql_test 1.15.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 102 AA aa 102 AA aa 102 AA aa 102 AA bb 102 AA bb 102 + AA bb 102 AA bb 102 BB aa 102 BB aa 102 BB aa 102 BB aa 102 + BB aa 102 BB aa 102 BB bb 102 BB bb 102 BB bb 102 BB bb 102 + BB bb 102 BB bb 102 CC aa 102 CC aa 102 CC aa 102 CC aa 102 + CC bb 102 CC bb 102 DD aa 102 DD aa 102 DD aa 102 DD bb 102 + DD bb 102 DD bb 102 DD bb 102 EE aa 102 EE aa 102 EE bb 102 + EE bb 102 EE bb 102 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 113 GG aa 113 GG aa 113 GG aa 113 GG bb 113 GG bb 113 + GG bb 113 GG bb 113 HH aa 113 HH aa 113 HH aa 113 HH bb 113 + HH bb 113 HH bb 113 HH bb 113 HH bb 113 HH bb 113 II aa 113 + II aa 113 II bb 113 II bb 113 II bb 113 II bb 113 II bb 113 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 257 JJ bb 257 + JJ bb 257 JJ bb 257} + +do_execsql_test 1.15.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 43867 + AA bb 44110 AA bb 44165 AA bb 44428 BB aa 39290 BB aa 39392 + BB aa 39640 BB aa 39653 BB aa 39659 BB aa 39805 BB bb 39212 + BB bb 39260 BB bb 39266 BB bb 39341 BB bb 39347 BB bb 39419 + CC aa 31953 CC aa 32105 CC aa 32282 CC aa 32554 CC bb 31890 + CC bb 32366 DD aa 28745 DD aa 29334 DD aa 29366 DD bb 28631 + DD bb 28796 DD bb 28874 DD bb 29352 EE aa 24781 EE aa 25445 + EE bb 24790 EE bb 24929 EE bb 25306 FF aa 22349 FF aa 22352 + FF aa 22401 FF aa 22811 FF bb 22081 FF bb 22149 FF bb 22293 + FF bb 22445 FF bb 22724 FF bb 22917 GG aa 16717 GG aa 16871 + GG aa 17016 GG aa 17203 GG bb 16413 GG bb 16422 GG bb 16507 + GG bb 17191 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 11920 + HH bb 12153 HH bb 12200 HH bb 12528 HH bb 12553 HH bb 12750 + II aa 6788 II aa 7042 II bb 6635 II bb 6769 II bb 6997 II bb 7019 + II bb 7190 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 2961 + JJ bb 3446 JJ bb 3464 JJ bb 3543} + +do_execsql_test 1.15.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 AA aa 43826 AA aa 44498 AA aa 44514 AA bb 41560 + AA bb 41803 AA bb 41858 AA bb 42121 BB aa 39290 BB aa 39392 + BB aa 39640 BB aa 39653 BB aa 39659 BB aa 39805 BB bb 36339 + BB bb 36387 BB bb 36393 BB bb 36468 BB bb 36474 BB bb 36546 + CC aa 31953 CC aa 32105 CC aa 32282 CC aa 32554 CC bb 29936 + CC bb 30412 DD aa 28745 DD aa 29334 DD aa 29366 DD bb 27306 + DD bb 27471 DD bb 27549 DD bb 28027 EE aa 24781 EE aa 25445 + EE bb 23900 EE bb 24039 EE bb 24416 FF aa 22349 FF aa 22352 + FF aa 22401 FF aa 22811 FF bb 19918 FF bb 19986 FF bb 20130 + FF bb 20282 FF bb 20561 FF bb 20754 GG aa 16717 GG aa 16871 + GG aa 17016 GG aa 17203 GG bb 14816 GG bb 14825 GG bb 14910 + GG bb 15594 HH aa 11904 HH aa 12093 HH aa 12403 HH bb 9671 + HH bb 9904 HH bb 9951 HH bb 10279 HH bb 10304 HH bb 10501 + II aa 6788 II aa 7042 II bb 5585 II bb 5719 II bb 5947 II bb 5969 + II bb 6140 JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 947 + JJ bb 1432 JJ bb 1450 JJ bb 1529} + +do_execsql_test 1.15.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 43803 44737 43803 44737 AA aa 43826 44737 43826 44737 + AA aa 44498 44737 44498 44737 AA aa 44514 44737 44514 44737 + AA bb 43867 44737 41560 42430 AA bb 44110 44737 41803 42430 + AA bb 44165 44737 41858 42430 AA bb 44428 44737 42121 42430 + BB aa 39290 40052 39290 40052 BB aa 39392 40052 39392 40052 + BB aa 39640 40052 39640 40052 BB aa 39653 40052 39653 40052 + BB aa 39659 40052 39659 40052 BB aa 39805 40052 39805 40052 + BB bb 39212 40052 36339 37179 BB bb 39260 40052 36387 37179 + BB bb 39266 40052 36393 37179 BB bb 39341 40052 36468 37179 + BB bb 39347 40052 36474 37179 BB bb 39419 40052 36546 37179 + CC aa 31953 32712 31953 32712 CC aa 32105 32712 32105 32712 + CC aa 32282 32712 32282 32712 CC aa 32554 32712 32554 32712 + CC bb 31890 32712 29936 30758 CC bb 32366 32712 30412 30758 + DD aa 28745 29590 28745 29590 DD aa 29334 29590 29334 29590 + DD aa 29366 29590 29366 29590 DD bb 28631 29590 27306 28265 + DD bb 28796 29590 27471 28265 DD bb 28874 29590 27549 28265 + DD bb 29352 29590 28027 28265 EE aa 24781 25558 24781 25558 + EE aa 25445 25558 25445 25558 EE bb 24790 25558 23900 24668 + EE bb 24929 25558 24039 24668 EE bb 25306 25558 24416 24668 + FF aa 22349 23019 22349 23019 FF aa 22352 23019 22352 23019 + FF aa 22401 23019 22401 23019 FF aa 22811 23019 22811 23019 + FF bb 22081 23019 19918 20856 FF bb 22149 23019 19986 20856 + FF bb 22293 23019 20130 20856 FF bb 22445 23019 20282 20856 + FF bb 22724 23019 20561 20856 FF bb 22917 23019 20754 20856 + GG aa 16717 17351 16717 17351 GG aa 16871 17351 16871 17351 + GG aa 17016 17351 17016 17351 GG aa 17203 17351 17203 17351 + GG bb 16413 17351 14816 15754 GG bb 16422 17351 14825 15754 + GG bb 16507 17351 14910 15754 GG bb 17191 17351 15594 15754 + HH aa 11904 12883 11904 12883 HH aa 12093 12883 12093 12883 + HH aa 12403 12883 12403 12883 HH bb 11920 12883 9671 10634 + HH bb 12153 12883 9904 10634 HH bb 12200 12883 9951 10634 + HH bb 12528 12883 10279 10634 HH bb 12553 12883 10304 10634 + HH bb 12750 12883 10501 10634 II aa 6788 7440 6788 7440 + II aa 7042 7440 7042 7440 II bb 6635 7440 5585 6390 + II bb 6769 7440 5719 6390 II bb 6997 7440 5947 6390 + II bb 7019 7440 5969 6390 II bb 7190 7440 6140 6390 + JJ aa 2901 3800 2901 3800 JJ aa 3032 3800 3032 3800 + JJ aa 3566 3800 3566 3800 JJ aa 3687 3800 3687 3800 + JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 + JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} + +do_execsql_test 1.16.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 4685 AA aa 4685 AA aa 4685 AA aa 4685 AA bb 4685 AA bb 4685 + AA bb 4685 AA bb 4685 BB aa 7340 BB aa 7340 BB aa 7340 BB aa 7340 + BB aa 7340 BB aa 7340 BB bb 7340 BB bb 7340 BB bb 7340 BB bb 7340 + BB bb 7340 BB bb 7340 CC aa 3122 CC aa 3122 CC aa 3122 CC aa 3122 + CC bb 3122 CC bb 3122 DD aa 4032 DD aa 4032 DD aa 4032 DD bb 4032 + DD bb 4032 DD bb 4032 DD bb 4032 EE aa 2539 EE aa 2539 EE bb 2539 + EE bb 2539 EE bb 2539 FF aa 5668 FF aa 5668 FF aa 5668 FF aa 5668 + FF bb 5668 FF bb 5668 FF bb 5668 FF bb 5668 FF bb 5668 FF bb 5668 + GG aa 4468 GG aa 4468 GG aa 4468 GG aa 4468 GG bb 4468 GG bb 4468 + GG bb 4468 GG bb 4468 HH aa 5443 HH aa 5443 HH aa 5443 HH bb 5443 + HH bb 5443 HH bb 5443 HH bb 5443 HH bb 5443 HH bb 5443 II aa 3640 + II aa 3640 II bb 3640 II bb 3640 II bb 3640 II bb 3640 II bb 3640 + JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ aa 3800 JJ bb 3800 JJ bb 3800 + JJ bb 3800 JJ bb 3800} + +do_execsql_test 1.16.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 2307 AA aa 2307 AA aa 2307 AA aa 2307 AA bb 2378 AA bb 2378 + AA bb 2378 AA bb 2378 BB aa 2873 BB aa 2873 BB aa 2873 BB aa 2873 + BB aa 2873 BB aa 2873 BB bb 4467 BB bb 4467 BB bb 4467 BB bb 4467 + BB bb 4467 BB bb 4467 CC aa 1954 CC aa 1954 CC aa 1954 CC aa 1954 + CC bb 1168 CC bb 1168 DD aa 1325 DD aa 1325 DD aa 1325 DD bb 2707 + DD bb 2707 DD bb 2707 DD bb 2707 EE aa 890 EE aa 890 EE bb 1649 + EE bb 1649 EE bb 1649 FF aa 2163 FF aa 2163 FF aa 2163 FF aa 2163 + FF bb 3505 FF bb 3505 FF bb 3505 FF bb 3505 FF bb 3505 FF bb 3505 + GG aa 1597 GG aa 1597 GG aa 1597 GG aa 1597 GG bb 2871 GG bb 2871 + GG bb 2871 GG bb 2871 HH aa 2249 HH aa 2249 HH aa 2249 HH bb 3194 + HH bb 3194 HH bb 3194 HH bb 3194 HH bb 3194 HH bb 3194 II aa 1050 + II aa 1050 II bb 2590 II bb 2590 II bb 2590 II bb 2590 II bb 2590 + JJ aa 2014 JJ aa 2014 JJ aa 2014 JJ aa 2014 JJ bb 1786 JJ bb 1786 + JJ bb 1786 JJ bb 1786} + +do_execsql_test 1.16.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.16.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 934 AA aa 934 AA aa 934 AA aa 934 AA bb 870 AA bb 870 + AA bb 870 AA bb 870 BB aa 762 BB aa 762 BB aa 762 BB aa 762 + BB aa 762 BB aa 762 BB bb 840 BB bb 840 BB bb 840 BB bb 840 + BB bb 840 BB bb 840 CC aa 759 CC aa 759 CC aa 759 CC aa 759 + CC bb 822 CC bb 822 DD aa 845 DD aa 845 DD aa 845 DD bb 959 + DD bb 959 DD bb 959 DD bb 959 EE aa 777 EE aa 777 EE bb 768 + EE bb 768 EE bb 768 FF aa 670 FF aa 670 FF aa 670 FF aa 670 + FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 FF bb 938 + GG aa 634 GG aa 634 GG aa 634 GG aa 634 GG bb 938 GG bb 938 + GG bb 938 GG bb 938 HH aa 979 HH aa 979 HH aa 979 HH bb 963 + HH bb 963 HH bb 963 HH bb 963 HH bb 963 HH bb 963 II aa 652 + II aa 652 II bb 805 II bb 805 II bb 805 II bb 805 II bb 805 + JJ aa 899 JJ aa 899 JJ aa 899 JJ aa 899 JJ bb 839 JJ bb 839 + JJ bb 839 JJ bb 839} + +do_execsql_test 1.16.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 223 AA aa 223 AA aa 223 AA aa 223 AA bb 309 AA bb 309 + AA bb 309 AA bb 309 BB aa 247 BB aa 247 BB aa 247 BB aa 247 + BB aa 247 BB aa 247 BB bb 633 BB bb 633 BB bb 633 BB bb 633 + BB bb 633 BB bb 633 CC aa 158 CC aa 158 CC aa 158 CC aa 158 + CC bb 346 CC bb 346 DD aa 224 DD aa 224 DD aa 224 DD bb 238 + DD bb 238 DD bb 238 DD bb 238 EE aa 113 EE aa 113 EE bb 252 + EE bb 252 EE bb 252 FF aa 208 FF aa 208 FF aa 208 FF aa 208 + FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 FF bb 102 + GG aa 148 GG aa 148 GG aa 148 GG aa 148 GG bb 160 GG bb 160 + GG bb 160 GG bb 160 HH aa 480 HH aa 480 HH aa 480 HH bb 133 + HH bb 133 HH bb 133 HH bb 133 HH bb 133 HH bb 133 II aa 398 + II aa 398 II bb 250 II bb 250 II bb 250 II bb 250 II bb 250 + JJ aa 113 JJ aa 113 JJ aa 113 JJ aa 113 JJ bb 257 JJ bb 257 + JJ bb 257 JJ bb 257} + +do_execsql_test 1.16.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 AA aa 3774 AA aa 4446 AA aa 4462 AA bb 3815 AA bb 4058 + AA bb 4113 AA bb 4376 BB aa 6578 BB aa 6680 BB aa 6928 BB aa 6941 + BB aa 6947 BB aa 7093 BB bb 6500 BB bb 6548 BB bb 6554 BB bb 6629 + BB bb 6635 BB bb 6707 CC aa 2363 CC aa 2515 CC aa 2692 CC aa 2964 + CC bb 2300 CC bb 2776 DD aa 3187 DD aa 3776 DD aa 3808 DD bb 3073 + DD bb 3238 DD bb 3316 DD bb 3794 EE aa 1762 EE aa 2426 EE bb 1771 + EE bb 1910 EE bb 2287 FF aa 4998 FF aa 5001 FF aa 5050 FF aa 5460 + FF bb 4730 FF bb 4798 FF bb 4942 FF bb 5094 FF bb 5373 FF bb 5566 + GG aa 3834 GG aa 3988 GG aa 4133 GG aa 4320 GG bb 3530 GG bb 3539 + GG bb 3624 GG bb 4308 HH aa 4464 HH aa 4653 HH aa 4963 HH bb 4480 + HH bb 4713 HH bb 4760 HH bb 5088 HH bb 5113 HH bb 5310 II aa 2988 + II aa 3242 II bb 2835 II bb 2969 II bb 3197 II bb 3219 II bb 3390 + JJ aa 2901 JJ aa 3032 JJ aa 3566 JJ aa 3687 JJ bb 2961 JJ bb 3446 + JJ bb 3464 JJ bb 3543} + +do_execsql_test 1.16.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1373 AA aa 1396 AA aa 2068 AA aa 2084 AA bb 1508 AA bb 1751 + AA bb 1806 AA bb 2069 BB aa 2111 BB aa 2213 BB aa 2461 BB aa 2474 + BB aa 2480 BB aa 2626 BB bb 3627 BB bb 3675 BB bb 3681 BB bb 3756 + BB bb 3762 BB bb 3834 CC aa 1195 CC aa 1347 CC aa 1524 CC aa 1796 + CC bb 346 CC bb 822 DD aa 480 DD aa 1069 DD aa 1101 DD bb 1748 + DD bb 1913 DD bb 1991 DD bb 2469 EE aa 113 EE aa 777 EE bb 881 + EE bb 1020 EE bb 1397 FF aa 1493 FF aa 1496 FF aa 1545 FF aa 1955 + FF bb 2567 FF bb 2635 FF bb 2779 FF bb 2931 FF bb 3210 FF bb 3403 + GG aa 963 GG aa 1117 GG aa 1262 GG aa 1449 GG bb 1933 GG bb 1942 + GG bb 2027 GG bb 2711 HH aa 1270 HH aa 1459 HH aa 1769 HH bb 2231 + HH bb 2464 HH bb 2511 HH bb 2839 HH bb 2864 HH bb 3061 II aa 398 + II aa 652 II bb 1785 II bb 1919 II bb 2147 II bb 2169 II bb 2340 + JJ aa 1115 JJ aa 1246 JJ aa 1780 JJ aa 1901 JJ bb 947 JJ bb 1432 + JJ bb 1450 JJ bb 1529} + +do_execsql_test 1.16.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 0 FOLLOWING AND 0 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 3751 4685 1373 2307 AA aa 3774 4685 1396 2307 + AA aa 4446 4685 2068 2307 AA aa 4462 4685 2084 2307 + AA bb 3815 4685 1508 2378 AA bb 4058 4685 1751 2378 + AA bb 4113 4685 1806 2378 AA bb 4376 4685 2069 2378 + BB aa 6578 7340 2111 2873 BB aa 6680 7340 2213 2873 + BB aa 6928 7340 2461 2873 BB aa 6941 7340 2474 2873 + BB aa 6947 7340 2480 2873 BB aa 7093 7340 2626 2873 + BB bb 6500 7340 3627 4467 BB bb 6548 7340 3675 4467 + BB bb 6554 7340 3681 4467 BB bb 6629 7340 3756 4467 + BB bb 6635 7340 3762 4467 BB bb 6707 7340 3834 4467 + CC aa 2363 3122 1195 1954 CC aa 2515 3122 1347 1954 + CC aa 2692 3122 1524 1954 CC aa 2964 3122 1796 1954 + CC bb 2300 3122 346 1168 CC bb 2776 3122 822 1168 + DD aa 3187 4032 480 1325 DD aa 3776 4032 1069 1325 + DD aa 3808 4032 1101 1325 DD bb 3073 4032 1748 2707 + DD bb 3238 4032 1913 2707 DD bb 3316 4032 1991 2707 + DD bb 3794 4032 2469 2707 EE aa 1762 2539 113 890 + EE aa 2426 2539 777 890 EE bb 1771 2539 881 1649 + EE bb 1910 2539 1020 1649 EE bb 2287 2539 1397 1649 + FF aa 4998 5668 1493 2163 FF aa 5001 5668 1496 2163 + FF aa 5050 5668 1545 2163 FF aa 5460 5668 1955 2163 + FF bb 4730 5668 2567 3505 FF bb 4798 5668 2635 3505 + FF bb 4942 5668 2779 3505 FF bb 5094 5668 2931 3505 + FF bb 5373 5668 3210 3505 FF bb 5566 5668 3403 3505 + GG aa 3834 4468 963 1597 GG aa 3988 4468 1117 1597 + GG aa 4133 4468 1262 1597 GG aa 4320 4468 1449 1597 + GG bb 3530 4468 1933 2871 GG bb 3539 4468 1942 2871 + GG bb 3624 4468 2027 2871 GG bb 4308 4468 2711 2871 + HH aa 4464 5443 1270 2249 HH aa 4653 5443 1459 2249 + HH aa 4963 5443 1769 2249 HH bb 4480 5443 2231 3194 + HH bb 4713 5443 2464 3194 HH bb 4760 5443 2511 3194 + HH bb 5088 5443 2839 3194 HH bb 5113 5443 2864 3194 + HH bb 5310 5443 3061 3194 II aa 2988 3640 398 1050 + II aa 3242 3640 652 1050 II bb 2835 3640 1785 2590 + II bb 2969 3640 1919 2590 II bb 3197 3640 2147 2590 + II bb 3219 3640 2169 2590 II bb 3390 3640 2340 2590 + JJ aa 2901 3800 1115 2014 JJ aa 3032 3800 1246 2014 + JJ aa 3566 3800 1780 2014 JJ aa 3687 3800 1901 2014 + JJ bb 2961 3800 947 1786 JJ bb 3446 3800 1432 1786 + JJ bb 3464 3800 1450 1786 JJ bb 3543 3800 1529 1786} + +do_execsql_test 1.17.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.17.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.17.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.17.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.17.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.17.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.17.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} AA aa {} AA aa {} AA aa {} AA bb {} AA bb {} AA bb {} + AA bb {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} BB aa {} + BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} BB bb {} CC aa {} + CC aa {} CC aa {} CC aa {} CC bb {} CC bb {} DD aa {} DD aa {} + DD aa {} DD bb {} DD bb {} DD bb {} DD bb {} EE aa {} EE aa {} + EE bb {} EE bb {} EE bb {} FF aa {} FF aa {} FF aa {} FF aa {} + FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} FF bb {} GG aa {} + GG aa {} GG aa {} GG aa {} GG bb {} GG bb {} GG bb {} GG bb {} + HH aa {} HH aa {} HH aa {} HH bb {} HH bb {} HH bb {} HH bb {} + HH bb {} HH bb {} II aa {} II aa {} II bb {} II bb {} II bb {} + II bb {} II bb {} JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} + JJ bb {} JJ bb {} JJ bb {}} + +do_execsql_test 1.17.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 0 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa {} {} {} {} AA aa {} {} {} {} AA aa {} {} {} {} + AA aa {} {} {} {} AA bb {} {} {} {} AA bb {} {} {} {} + AA bb {} {} {} {} AA bb {} {} {} {} BB aa {} {} {} {} + BB aa {} {} {} {} BB aa {} {} {} {} BB aa {} {} {} {} + BB aa {} {} {} {} BB aa {} {} {} {} BB bb {} {} {} {} + BB bb {} {} {} {} BB bb {} {} {} {} BB bb {} {} {} {} + BB bb {} {} {} {} BB bb {} {} {} {} CC aa {} {} {} {} + CC aa {} {} {} {} CC aa {} {} {} {} CC aa {} {} {} {} + CC bb {} {} {} {} CC bb {} {} {} {} DD aa {} {} {} {} + DD aa {} {} {} {} DD aa {} {} {} {} DD bb {} {} {} {} + DD bb {} {} {} {} DD bb {} {} {} {} DD bb {} {} {} {} + EE aa {} {} {} {} EE aa {} {} {} {} EE bb {} {} {} {} + EE bb {} {} {} {} EE bb {} {} {} {} FF aa {} {} {} {} + FF aa {} {} {} {} FF aa {} {} {} {} FF aa {} {} {} {} + FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} + FF bb {} {} {} {} FF bb {} {} {} {} FF bb {} {} {} {} + GG aa {} {} {} {} GG aa {} {} {} {} GG aa {} {} {} {} + GG aa {} {} {} {} GG bb {} {} {} {} GG bb {} {} {} {} + GG bb {} {} {} {} GG bb {} {} {} {} HH aa {} {} {} {} + HH aa {} {} {} {} HH aa {} {} {} {} HH bb {} {} {} {} + HH bb {} {} {} {} HH bb {} {} {} {} HH bb {} {} {} {} + HH bb {} {} {} {} HH bb {} {} {} {} II aa {} {} {} {} + II aa {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} + II bb {} {} {} {} II bb {} {} {} {} II bb {} {} {} {} + JJ aa {} {} {} {} JJ aa {} {} {} {} JJ aa {} {} {} {} + JJ aa {} {} {} {} JJ bb {} {} {} {} JJ bb {} {} {} {} + JJ bb {} {} {} {} JJ bb {} {} {} {}} + +do_execsql_test 1.18.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 22701 AA aa 22701 AA aa 22701 AA aa 22701 AA bb 22701 + AA bb 22701 AA bb 22701 AA bb 22701 BB aa 19829 BB aa 19829 + BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB bb 19829 + BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 + CC aa 22150 CC aa 22150 CC aa 22150 CC aa 22150 CC bb 22150 + CC bb 22150 DD aa 21758 DD aa 21758 DD aa 21758 DD bb 21758 + DD bb 21758 DD bb 21758 DD bb 21758 EE aa 23019 EE aa 23019 + EE bb 23019 EE bb 23019 EE bb 23019 FF aa 17351 FF aa 17351 + FF aa 17351 FF aa 17351 FF bb 17351 FF bb 17351 FF bb 17351 + FF bb 17351 FF bb 17351 FF bb 17351 GG aa 12883 GG aa 12883 + GG aa 12883 GG aa 12883 GG bb 12883 GG bb 12883 GG bb 12883 + GG bb 12883 HH aa 7440 HH aa 7440 HH aa 7440 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 3800 + II aa 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 + JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} + JJ bb {}} + +do_execsql_test 1.18.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 12840 AA aa 12840 AA aa 12840 AA aa 12840 AA bb 11787 + AA bb 11787 AA bb 11787 AA bb 11787 BB aa 11621 BB aa 11621 + BB aa 11621 BB aa 11621 BB aa 11621 BB aa 11621 BB bb 8044 + BB bb 8044 BB bb 8044 BB bb 8044 BB bb 8044 BB bb 8044 CC aa 7739 + CC aa 7739 CC aa 7739 CC aa 7739 CC bb 8734 CC bb 8734 + DD aa 10914 DD aa 10914 DD aa 10914 DD bb 9804 DD bb 9804 + DD bb 9804 DD bb 9804 EE aa 11785 EE aa 11785 EE bb 12385 + EE bb 12385 EE bb 12385 FF aa 13416 FF aa 13416 FF aa 13416 + FF aa 13416 FF bb 10961 FF bb 10961 FF bb 10961 FF bb 10961 + FF bb 10961 FF bb 10961 GG aa 11954 GG aa 11954 GG aa 11954 + GG aa 11954 GG bb 11097 GG bb 11097 GG bb 11097 GG bb 11097 + HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 II aa 6390 + II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 JJ aa 1786 + JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} JJ bb {} + JJ bb {}} + +do_execsql_test 1.18.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.18.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 870 AA aa 870 AA aa 870 AA aa 870 AA bb 845 AA bb 845 + AA bb 845 AA bb 845 BB aa 959 BB aa 959 BB aa 959 BB aa 959 + BB aa 959 BB aa 959 BB bb 959 BB bb 959 BB bb 959 BB bb 959 + BB bb 959 BB bb 959 CC aa 959 CC aa 959 CC aa 959 CC aa 959 + CC bb 959 CC bb 959 DD aa 959 DD aa 959 DD aa 959 DD bb 938 + DD bb 938 DD bb 938 DD bb 938 EE aa 938 EE aa 938 EE bb 979 + EE bb 979 EE bb 979 FF aa 979 FF aa 979 FF aa 979 FF aa 979 + FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 + GG aa 979 GG aa 979 GG aa 979 GG aa 979 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 963 HH aa 963 HH aa 963 HH bb 899 + HH bb 899 HH bb 899 HH bb 899 HH bb 899 HH bb 899 II aa 899 + II aa 899 II bb 899 II bb 899 II bb 899 II bb 899 II bb 899 + JJ aa 839 JJ aa 839 JJ aa 839 JJ aa 839 JJ bb {} JJ bb {} + JJ bb {} JJ bb {}} + +do_execsql_test 1.18.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 158 AA aa 158 AA aa 158 AA aa 158 AA bb 158 AA bb 158 + AA bb 158 AA bb 158 BB aa 158 BB aa 158 BB aa 158 BB aa 158 + BB aa 158 BB aa 158 BB bb 113 BB bb 113 BB bb 113 BB bb 113 + BB bb 113 BB bb 113 CC aa 113 CC aa 113 CC aa 113 CC aa 113 + CC bb 113 CC bb 113 DD aa 102 DD aa 102 DD aa 102 DD bb 102 + DD bb 102 DD bb 102 DD bb 102 EE aa 102 EE aa 102 EE bb 102 + EE bb 102 EE bb 102 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 133 FF bb 133 FF bb 133 FF bb 133 FF bb 133 FF bb 133 + GG aa 133 GG aa 133 GG aa 133 GG aa 133 GG bb 113 GG bb 113 + GG bb 113 GG bb 113 HH aa 113 HH aa 113 HH aa 113 HH bb 113 + HH bb 113 HH bb 113 HH bb 113 HH bb 113 HH bb 113 II aa 113 + II aa 113 II bb 113 II bb 113 II bb 113 II bb 113 II bb 113 + JJ aa 257 JJ aa 257 JJ aa 257 JJ aa 257 JJ bb {} JJ bb {} + JJ bb {} JJ bb {}} + +do_execsql_test 1.18.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 22701 AA aa 22701 AA aa 22701 AA aa 22701 AA bb 22701 + AA bb 22701 AA bb 22701 AA bb 22701 BB aa 19829 BB aa 19829 + BB aa 19829 BB aa 19829 BB aa 19829 BB aa 19829 BB bb 19829 + BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 BB bb 19829 + CC aa 22150 CC aa 22150 CC aa 22150 CC aa 22150 CC bb 22150 + CC bb 22150 DD aa 21758 DD aa 21758 DD aa 21758 DD bb 21758 + DD bb 21758 DD bb 21758 DD bb 21758 EE aa 23019 EE aa 23019 + EE bb 23019 EE bb 23019 EE bb 23019 FF aa 17351 FF aa 17351 + FF aa 17351 FF aa 17351 FF bb 17351 FF bb 17351 FF bb 17351 + FF bb 17351 FF bb 17351 FF bb 17351 GG aa 12883 GG aa 12883 + GG aa 12883 GG aa 12883 GG bb 12883 GG bb 12883 GG bb 12883 + GG bb 12883 HH aa 7440 HH aa 7440 HH aa 7440 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 3800 + II aa 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 + JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} + JJ bb {}} + +do_execsql_test 1.18.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 12840 AA aa 12840 AA aa 12840 AA aa 12840 AA bb 11787 + AA bb 11787 AA bb 11787 AA bb 11787 BB aa 11621 BB aa 11621 + BB aa 11621 BB aa 11621 BB aa 11621 BB aa 11621 BB bb 8044 + BB bb 8044 BB bb 8044 BB bb 8044 BB bb 8044 BB bb 8044 CC aa 7739 + CC aa 7739 CC aa 7739 CC aa 7739 CC bb 8734 CC bb 8734 + DD aa 10914 DD aa 10914 DD aa 10914 DD bb 9804 DD bb 9804 + DD bb 9804 DD bb 9804 EE aa 11785 EE aa 11785 EE bb 12385 + EE bb 12385 EE bb 12385 FF aa 13416 FF aa 13416 FF aa 13416 + FF aa 13416 FF bb 10961 FF bb 10961 FF bb 10961 FF bb 10961 + FF bb 10961 FF bb 10961 GG aa 11954 GG aa 11954 GG aa 11954 + GG aa 11954 GG bb 11097 GG bb 11097 GG bb 11097 GG bb 11097 + HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 II aa 6390 + II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 JJ aa 1786 + JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} JJ bb {} + JJ bb {}} + +do_execsql_test 1.18.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND 5 FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 22701 22701 12840 12840 AA aa 22701 22701 12840 12840 + AA aa 22701 22701 12840 12840 AA aa 22701 22701 12840 12840 + AA bb 22701 22701 11787 11787 AA bb 22701 22701 11787 11787 + AA bb 22701 22701 11787 11787 AA bb 22701 22701 11787 11787 + BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 + BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 + BB aa 19829 19829 11621 11621 BB aa 19829 19829 11621 11621 + BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 + BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 + BB bb 19829 19829 8044 8044 BB bb 19829 19829 8044 8044 + CC aa 22150 22150 7739 7739 CC aa 22150 22150 7739 7739 + CC aa 22150 22150 7739 7739 CC aa 22150 22150 7739 7739 + CC bb 22150 22150 8734 8734 CC bb 22150 22150 8734 8734 + DD aa 21758 21758 10914 10914 DD aa 21758 21758 10914 10914 + DD aa 21758 21758 10914 10914 DD bb 21758 21758 9804 9804 + DD bb 21758 21758 9804 9804 DD bb 21758 21758 9804 9804 + DD bb 21758 21758 9804 9804 EE aa 23019 23019 11785 11785 + EE aa 23019 23019 11785 11785 EE bb 23019 23019 12385 12385 + EE bb 23019 23019 12385 12385 EE bb 23019 23019 12385 12385 + FF aa 17351 17351 13416 13416 FF aa 17351 17351 13416 13416 + FF aa 17351 17351 13416 13416 FF aa 17351 17351 13416 13416 + FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 + FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 + FF bb 17351 17351 10961 10961 FF bb 17351 17351 10961 10961 + GG aa 12883 12883 11954 11954 GG aa 12883 12883 11954 11954 + GG aa 12883 12883 11954 11954 GG aa 12883 12883 11954 11954 + GG bb 12883 12883 11097 11097 GG bb 12883 12883 11097 11097 + GG bb 12883 12883 11097 11097 GG bb 12883 12883 11097 11097 + HH aa 7440 7440 10634 10634 HH aa 7440 7440 10634 10634 + HH aa 7440 7440 10634 10634 HH bb 7440 7440 7440 7440 + HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 + HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 + HH bb 7440 7440 7440 7440 II aa 3800 3800 6390 6390 + II aa 3800 3800 6390 6390 II bb 3800 3800 3800 3800 + II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 + II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 + JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 + JJ aa {} {} 1786 1786 JJ bb {} {} {} {} JJ bb {} {} {} {} + JJ bb {} {} {} {} JJ bb {} {} {} {}} + +do_execsql_test 1.19.1 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 40052 AA aa 40052 AA aa 40052 AA aa 40052 AA bb 40052 + AA bb 40052 AA bb 40052 AA bb 40052 BB aa 32712 BB aa 32712 + BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB bb 32712 + BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 + CC aa 29590 CC aa 29590 CC aa 29590 CC aa 29590 CC bb 29590 + CC bb 29590 DD aa 25558 DD aa 25558 DD aa 25558 DD bb 25558 + DD bb 25558 DD bb 25558 DD bb 25558 EE aa 23019 EE aa 23019 + EE bb 23019 EE bb 23019 EE bb 23019 FF aa 17351 FF aa 17351 + FF aa 17351 FF aa 17351 FF bb 17351 FF bb 17351 FF bb 17351 + FF bb 17351 FF bb 17351 FF bb 17351 GG aa 12883 GG aa 12883 + GG aa 12883 GG aa 12883 GG bb 12883 GG bb 12883 GG bb 12883 + GG bb 12883 HH aa 7440 HH aa 7440 HH aa 7440 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 3800 + II aa 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 + JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} + JJ bb {}} + +do_execsql_test 1.19.2 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 42430 AA aa 42430 AA aa 42430 AA aa 42430 AA bb 40052 + AA bb 40052 AA bb 40052 AA bb 40052 BB aa 37179 BB aa 37179 + BB aa 37179 BB aa 37179 BB aa 37179 BB aa 37179 BB bb 32712 + BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 + CC aa 30758 CC aa 30758 CC aa 30758 CC aa 30758 CC bb 29590 + CC bb 29590 DD aa 28265 DD aa 28265 DD aa 28265 DD bb 25558 + DD bb 25558 DD bb 25558 DD bb 25558 EE aa 24668 EE aa 24668 + EE bb 23019 EE bb 23019 EE bb 23019 FF aa 20856 FF aa 20856 + FF aa 20856 FF aa 20856 FF bb 17351 FF bb 17351 FF bb 17351 + FF bb 17351 FF bb 17351 FF bb 17351 GG aa 15754 GG aa 15754 + GG aa 15754 GG aa 15754 GG bb 12883 GG bb 12883 GG bb 12883 + GG bb 12883 HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 + II aa 6390 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 + JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} + JJ bb {} JJ bb {}} + +do_execsql_test 1.19.3 { + SELECT a, b, rank() OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 1 AA aa 1 AA aa 1 AA aa 1 AA bb 1 AA bb 1 AA bb 1 + AA bb 1 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 BB aa 9 + BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 BB bb 9 CC aa 21 + CC aa 21 CC aa 21 CC aa 21 CC bb 21 CC bb 21 DD aa 27 DD aa 27 + DD aa 27 DD bb 27 DD bb 27 DD bb 27 DD bb 27 EE aa 34 EE aa 34 + EE bb 34 EE bb 34 EE bb 34 FF aa 39 FF aa 39 FF aa 39 FF aa 39 + FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 FF bb 39 GG aa 49 + GG aa 49 GG aa 49 GG aa 49 GG bb 49 GG bb 49 GG bb 49 GG bb 49 + HH aa 57 HH aa 57 HH aa 57 HH bb 57 HH bb 57 HH bb 57 HH bb 57 + HH bb 57 HH bb 57 II aa 66 II aa 66 II bb 66 II bb 66 II bb 66 + II bb 66 II bb 66 JJ aa 73 JJ aa 73 JJ aa 73 JJ aa 73 JJ bb 73 + JJ bb 73 JJ bb 73 JJ bb 73} + +do_execsql_test 1.19.4 { + SELECT a, b, max(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 979 AA aa 979 AA aa 979 AA aa 979 AA bb 979 AA bb 979 + AA bb 979 AA bb 979 BB aa 979 BB aa 979 BB aa 979 BB aa 979 + BB aa 979 BB aa 979 BB bb 979 BB bb 979 BB bb 979 BB bb 979 + BB bb 979 BB bb 979 CC aa 979 CC aa 979 CC aa 979 CC aa 979 + CC bb 979 CC bb 979 DD aa 979 DD aa 979 DD aa 979 DD bb 979 + DD bb 979 DD bb 979 DD bb 979 EE aa 979 EE aa 979 EE bb 979 + EE bb 979 EE bb 979 FF aa 979 FF aa 979 FF aa 979 FF aa 979 + FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 FF bb 979 + GG aa 979 GG aa 979 GG aa 979 GG aa 979 GG bb 979 GG bb 979 + GG bb 979 GG bb 979 HH aa 963 HH aa 963 HH aa 963 HH bb 899 + HH bb 899 HH bb 899 HH bb 899 HH bb 899 HH bb 899 II aa 899 + II aa 899 II bb 899 II bb 899 II bb 899 II bb 899 II bb 899 + JJ aa 839 JJ aa 839 JJ aa 839 JJ aa 839 JJ bb {} JJ bb {} + JJ bb {} JJ bb {}} + +do_execsql_test 1.19.5 { + SELECT a, b, min(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 102 AA aa 102 AA aa 102 AA aa 102 AA bb 102 AA bb 102 + AA bb 102 AA bb 102 BB aa 102 BB aa 102 BB aa 102 BB aa 102 + BB aa 102 BB aa 102 BB bb 102 BB bb 102 BB bb 102 BB bb 102 + BB bb 102 BB bb 102 CC aa 102 CC aa 102 CC aa 102 CC aa 102 + CC bb 102 CC bb 102 DD aa 102 DD aa 102 DD aa 102 DD bb 102 + DD bb 102 DD bb 102 DD bb 102 EE aa 102 EE aa 102 EE bb 102 + EE bb 102 EE bb 102 FF aa 102 FF aa 102 FF aa 102 FF aa 102 + FF bb 113 FF bb 113 FF bb 113 FF bb 113 FF bb 113 FF bb 113 + GG aa 113 GG aa 113 GG aa 113 GG aa 113 GG bb 113 GG bb 113 + GG bb 113 GG bb 113 HH aa 113 HH aa 113 HH aa 113 HH bb 113 + HH bb 113 HH bb 113 HH bb 113 HH bb 113 HH bb 113 II aa 113 + II aa 113 II bb 113 II bb 113 II bb 113 II bb 113 II bb 113 + JJ aa 257 JJ aa 257 JJ aa 257 JJ aa 257 JJ bb {} JJ bb {} + JJ bb {} JJ bb {}} + +do_execsql_test 1.19.6 { + SELECT a, b, sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 40052 AA aa 40052 AA aa 40052 AA aa 40052 AA bb 40052 + AA bb 40052 AA bb 40052 AA bb 40052 BB aa 32712 BB aa 32712 + BB aa 32712 BB aa 32712 BB aa 32712 BB aa 32712 BB bb 32712 + BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 + CC aa 29590 CC aa 29590 CC aa 29590 CC aa 29590 CC bb 29590 + CC bb 29590 DD aa 25558 DD aa 25558 DD aa 25558 DD bb 25558 + DD bb 25558 DD bb 25558 DD bb 25558 EE aa 23019 EE aa 23019 + EE bb 23019 EE bb 23019 EE bb 23019 FF aa 17351 FF aa 17351 + FF aa 17351 FF aa 17351 FF bb 17351 FF bb 17351 FF bb 17351 + FF bb 17351 FF bb 17351 FF bb 17351 GG aa 12883 GG aa 12883 + GG aa 12883 GG aa 12883 GG bb 12883 GG bb 12883 GG bb 12883 + GG bb 12883 HH aa 7440 HH aa 7440 HH aa 7440 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 3800 + II aa 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 + JJ aa {} JJ aa {} JJ aa {} JJ aa {} JJ bb {} JJ bb {} JJ bb {} + JJ bb {}} + +do_execsql_test 1.19.7 { + SELECT a, b, sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW) FROM t3 ORDER BY 1, 2, 3; +} {AA aa 42430 AA aa 42430 AA aa 42430 AA aa 42430 AA bb 40052 + AA bb 40052 AA bb 40052 AA bb 40052 BB aa 37179 BB aa 37179 + BB aa 37179 BB aa 37179 BB aa 37179 BB aa 37179 BB bb 32712 + BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 BB bb 32712 + CC aa 30758 CC aa 30758 CC aa 30758 CC aa 30758 CC bb 29590 + CC bb 29590 DD aa 28265 DD aa 28265 DD aa 28265 DD bb 25558 + DD bb 25558 DD bb 25558 DD bb 25558 EE aa 24668 EE aa 24668 + EE bb 23019 EE bb 23019 EE bb 23019 FF aa 20856 FF aa 20856 + FF aa 20856 FF aa 20856 FF bb 17351 FF bb 17351 FF bb 17351 + FF bb 17351 FF bb 17351 FF bb 17351 GG aa 15754 GG aa 15754 + GG aa 15754 GG aa 15754 GG bb 12883 GG bb 12883 GG bb 12883 + GG bb 12883 HH aa 10634 HH aa 10634 HH aa 10634 HH bb 7440 + HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 HH bb 7440 II aa 6390 + II aa 6390 II bb 3800 II bb 3800 II bb 3800 II bb 3800 II bb 3800 + JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ aa 1786 JJ bb {} JJ bb {} + JJ bb {} JJ bb {}} + +do_execsql_test 1.19.8 { + SELECT a, b, + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW), + sum(c) OVER (ORDER BY a,b GROUPS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING ) + FROM t3 ORDER BY 1, 2, 3; +} {AA aa 40052 40052 42430 42430 AA aa 40052 40052 42430 42430 + AA aa 40052 40052 42430 42430 AA aa 40052 40052 42430 42430 + AA bb 40052 40052 40052 40052 AA bb 40052 40052 40052 40052 + AA bb 40052 40052 40052 40052 AA bb 40052 40052 40052 40052 + BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 + BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 + BB aa 32712 32712 37179 37179 BB aa 32712 32712 37179 37179 + BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 + BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 + BB bb 32712 32712 32712 32712 BB bb 32712 32712 32712 32712 + CC aa 29590 29590 30758 30758 CC aa 29590 29590 30758 30758 + CC aa 29590 29590 30758 30758 CC aa 29590 29590 30758 30758 + CC bb 29590 29590 29590 29590 CC bb 29590 29590 29590 29590 + DD aa 25558 25558 28265 28265 DD aa 25558 25558 28265 28265 + DD aa 25558 25558 28265 28265 DD bb 25558 25558 25558 25558 + DD bb 25558 25558 25558 25558 DD bb 25558 25558 25558 25558 + DD bb 25558 25558 25558 25558 EE aa 23019 23019 24668 24668 + EE aa 23019 23019 24668 24668 EE bb 23019 23019 23019 23019 + EE bb 23019 23019 23019 23019 EE bb 23019 23019 23019 23019 + FF aa 17351 17351 20856 20856 FF aa 17351 17351 20856 20856 + FF aa 17351 17351 20856 20856 FF aa 17351 17351 20856 20856 + FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 + FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 + FF bb 17351 17351 17351 17351 FF bb 17351 17351 17351 17351 + GG aa 12883 12883 15754 15754 GG aa 12883 12883 15754 15754 + GG aa 12883 12883 15754 15754 GG aa 12883 12883 15754 15754 + GG bb 12883 12883 12883 12883 GG bb 12883 12883 12883 12883 + GG bb 12883 12883 12883 12883 GG bb 12883 12883 12883 12883 + HH aa 7440 7440 10634 10634 HH aa 7440 7440 10634 10634 + HH aa 7440 7440 10634 10634 HH bb 7440 7440 7440 7440 + HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 + HH bb 7440 7440 7440 7440 HH bb 7440 7440 7440 7440 + HH bb 7440 7440 7440 7440 II aa 3800 3800 6390 6390 + II aa 3800 3800 6390 6390 II bb 3800 3800 3800 3800 + II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 + II bb 3800 3800 3800 3800 II bb 3800 3800 3800 3800 + JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 JJ aa {} {} 1786 1786 + JJ aa {} {} 1786 1786 JJ bb {} {} {} {} JJ bb {} {} {} {} + JJ bb {} {} {} {} JJ bb {} {} {} {}} + +do_execsql_test 2.1.1 { + SELECT row_number() OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS + ) +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80} + +do_execsql_test 2.1.2 { + SELECT nth_value(c, 14) OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS + ) +} {247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247} + +do_execsql_test 2.1.3 { + SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE NO OTHERS + ) ORDER BY a, b, c; +} {102 223 1358 102 239 2293 102 911 38097 102 934 39960 102 309 4159 + 102 572 10643 102 627 13069 102 870 35417 102 247 2540 102 393 6608 + 102 399 7405 102 412 7817 102 660 16277 102 762 24077 102 633 14331 + 102 705 19673 102 711 20384 102 786 27176 102 792 28758 + 102 840 32858 102 158 767 102 430 8668 102 607 11824 102 759 23315 + 102 346 5506 102 822 31179 102 224 1582 102 256 3298 102 845 34547 + 102 238 2054 102 716 21100 102 794 29552 102 959 42795 102 113 215 + 102 777 26390 102 252 3042 102 629 13698 102 768 25613 102 208 1135 + 102 618 12442 102 667 16944 102 670 17614 102 102 102 102 295 3850 + 102 574 11217 102 726 21826 102 870 36287 102 938 40898 102 148 609 + 102 335 4824 102 480 9591 102 634 14965 102 160 927 102 844 33702 + 102 929 39026 102 938 41836 102 480 10071 102 790 27966 + 102 979 44737 102 133 461 102 330 4489 102 355 6215 102 683 18968 + 102 730 22556 102 963 43758 102 398 7006 102 652 15617 102 250 2790 + 102 421 8238 102 443 9111 102 671 18285 102 805 30357 102 113 328 + 102 234 1816 102 768 24845 102 899 37186 102 257 3555 102 336 5160 + 102 354 5860 102 839 32018} + +do_execsql_test 2.2.1 { + SELECT row_number() OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW + ) +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80} + +do_execsql_test 2.2.2 { + SELECT nth_value(c, 14) OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW + ) +} {250 250 250 250 250 250 250 250 250 250 250 250 250 + 250 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247} + +do_execsql_test 2.2.3 { + SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE CURRENT ROW + ) ORDER BY a, b, c; +} {102 208 1135 102 238 2054 102 899 37186 102 929 39026 102 295 3850 + 102 480 10071 102 618 12442 102 845 34547 102 239 2293 102 355 6215 + 102 398 7006 102 399 7405 102 652 15617 102 759 23315 102 629 13698 + 102 683 18968 102 705 19673 102 777 26390 102 790 27966 + 102 839 32018 102 148 609 102 421 8238 102 574 11217 102 730 22556 + 102 336 5160 102 805 30357 102 223 1358 102 252 3042 102 844 33702 + 102 234 1816 102 711 20384 102 792 28758 102 938 41836 102 102 102 + 102 768 25613 102 250 2790 102 627 13069 102 768 24845 102 160 927 + 102 607 11824 102 660 16277 102 667 16944 {} {} {} 102 257 3555 + 102 572 10643 102 716 21100 102 870 35417 102 934 39960 102 133 461 + 102 330 4489 102 443 9111 102 633 14331 102 158 767 102 840 32858 + 102 911 38097 102 938 40898 102 480 9591 102 786 27176 + 102 963 43758 102 113 328 102 309 4159 102 354 5860 102 671 18285 + 102 726 21826 102 959 42795 102 393 6608 102 634 14965 102 247 2540 + 102 412 7817 102 430 8668 102 670 17614 102 794 29552 102 113 215 + 102 224 1582 102 762 24077 102 870 36287 102 256 3298 102 335 4824 + 102 346 5506 102 822 31179} + +do_execsql_test 2.3.1 { + SELECT row_number() OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP + ) +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80} + +do_execsql_test 2.3.2 { + SELECT nth_value(c, 14) OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP + ) +} {250 250 250 250 250 250 250 250 250 250 250 250 250 + 250 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247} + +do_execsql_test 2.3.3 { + SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE GROUP + ) ORDER BY a, b, c; +} {102 208 1135 102 238 2054 102 899 37186 102 929 39026 102 295 3850 + 102 480 10071 102 618 12442 102 845 34547 102 239 2293 102 355 6215 + 102 398 7006 102 399 7405 102 652 15617 102 759 23315 102 629 13698 + 102 683 18968 102 705 19673 102 777 26390 102 790 27966 + 102 839 32018 102 148 609 102 421 8238 102 574 11217 102 730 22556 + 102 336 5160 102 805 30357 102 223 1358 102 252 3042 102 844 33702 + 102 234 1816 102 711 20384 102 792 28758 102 938 41836 102 102 102 + 102 768 25613 102 250 2790 102 627 13069 102 768 24845 102 160 927 + 102 607 11824 102 660 16277 102 667 16944 {} {} {} 102 257 3555 + 102 572 10643 102 716 21100 102 870 35417 102 934 39960 102 133 461 + 102 330 4489 102 443 9111 102 633 14331 102 158 767 102 840 32858 + 102 911 38097 102 938 40898 102 480 9591 102 786 27176 + 102 963 43758 102 113 328 102 309 4159 102 354 5860 102 671 18285 + 102 726 21826 102 959 42795 102 393 6608 102 634 14965 102 247 2540 + 102 412 7817 102 430 8668 102 670 17614 102 794 29552 102 113 215 + 102 224 1582 102 762 24077 102 870 36287 102 256 3298 102 335 4824 + 102 346 5506 102 822 31179} + +do_execsql_test 2.4.1 { + SELECT row_number() OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES + ) +} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78 79 80} + +do_execsql_test 2.4.2 { + SELECT nth_value(c, 14) OVER win + FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES + ) +} {247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247 247 247 247 247 247 247 247 247 247 247 247 + 247 247} + +do_execsql_test 2.4.3 { + SELECT min(c) OVER win, max(c) OVER win, sum(c) OVER win FROM t3 + WINDOW win AS ( + ORDER BY c, b, a + ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW EXCLUDE TIES + ) ORDER BY a, b, c; +} {102 223 1358 102 239 2293 102 911 38097 102 934 39960 102 309 4159 + 102 572 10643 102 627 13069 102 870 35417 102 247 2540 102 393 6608 + 102 399 7405 102 412 7817 102 660 16277 102 762 24077 102 633 14331 + 102 705 19673 102 711 20384 102 786 27176 102 792 28758 + 102 840 32858 102 158 767 102 430 8668 102 607 11824 102 759 23315 + 102 346 5506 102 822 31179 102 224 1582 102 256 3298 102 845 34547 + 102 238 2054 102 716 21100 102 794 29552 102 959 42795 102 113 215 + 102 777 26390 102 252 3042 102 629 13698 102 768 25613 102 208 1135 + 102 618 12442 102 667 16944 102 670 17614 102 102 102 102 295 3850 + 102 574 11217 102 726 21826 102 870 36287 102 938 40898 102 148 609 + 102 335 4824 102 480 9591 102 634 14965 102 160 927 102 844 33702 + 102 929 39026 102 938 41836 102 480 10071 102 790 27966 + 102 979 44737 102 133 461 102 330 4489 102 355 6215 102 683 18968 + 102 730 22556 102 963 43758 102 398 7006 102 652 15617 102 250 2790 + 102 421 8238 102 443 9111 102 671 18285 102 805 30357 102 113 328 + 102 234 1816 102 768 24845 102 899 37186 102 257 3555 102 336 5160 + 102 354 5860 102 839 32018} + +#========================================================================== + +do_execsql_test 3.0 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a REAL, b INTEGER); + INSERT INTO t1 VALUES + (5, 10), (10, 20), (13, 26), (13, 26), + (15, 30), (20, 40), (22,80), (30, 90); +} {} + +do_execsql_test 3.1 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING ) +} {5 30 10 112 13 102 13 102 15 142 20 150 22 120 30 90} + +do_execsql_test 3.2 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING ) +} {5 {} 10 10 13 10 13 10 15 30 20 102 22 82 30 120} + +do_execsql_test 3.3 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING ) +} {5 {} 10 52 13 30 13 30 15 {} 20 80 22 {} 30 {}} + +do_execsql_test 3.4 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING ) +} {30 90 22 120 20 150 15 142 13 102 13 102 10 112 5 30} + +do_execsql_test 3.5 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 10 PRECEDING AND 5 PRECEDING ) +} {30 {} 22 90 20 90 15 120 13 120 13 120 10 70 5 102} + +do_execsql_test 3.6 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2 FOLLOWING AND 3 FOLLOWING ) +} {30 {} 22 40 20 {} 15 52 13 20 13 20 10 {} 5 {}} + +do_execsql_test 3.7 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 5.1 PRECEDING AND 5.3 FOLLOWING ) +} {5 30 10 112 13 102 13 102 15 142 20 150 22 120 30 90} + +do_execsql_test 3.8 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 10.2 PRECEDING AND 5.4 PRECEDING ) +} {5 {} 10 {} 13 10 13 10 15 10 20 72 22 82 30 120} + +do_execsql_test 3.9 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE BETWEEN 2.6 FOLLOWING AND 3.5 FOLLOWING ) +} {5 {} 10 52 13 {} 13 {} 15 {} 20 {} 22 {} 30 {}} + +do_execsql_test 3.10 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 5.7 PRECEDING AND 5.8 FOLLOWING ) +} {30 90 22 120 20 150 15 142 13 102 13 102 10 112 5 30} + +do_execsql_test 3.11 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN UNBOUNDED PRECEDING AND 5.9 PRECEDING ) +} {30 {} 22 90 20 90 15 170 13 210 13 210 10 210 5 292} + +do_execsql_test 3.12 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a DESC RANGE BETWEEN 2.1 FOLLOWING AND UNBOUNDED FOLLOWING ) +} {30 232 22 112 20 112 15 30 13 30 13 30 10 10 5 {}} + +do_execsql_test 3.13 { + SELECT CAST(a AS INTEGER), sum(b) OVER win FROM t1 WINDOW win AS ( ORDER BY a RANGE 5.1 PRECEDING ) +} {5 10 10 30 13 72 13 72 15 102 20 70 22 120 30 90} + +#========================================================================== + +do_execsql_test 4.0 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a INTEGER, b INTEGER); + INSERT INTO t1 VALUES + (NULL, 1), (NULL, 2), (NULL, 3), (10, 4), (10, 5); +} {} + +do_execsql_test 4.1.1 { + SELECT sum(b) OVER ( + ORDER BY a RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1; +} {6 6 6 9 9} + +do_execsql_test 4.1.2 { + SELECT sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 5 PRECEDING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1; +} {6 6 6 9 9} + +do_execsql_test 4.2.1 { + SELECT sum(b) OVER ( + ORDER BY a RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1 ; +} {{} {} 6 6 6} + +do_execsql_test 4.2.2 { + SELECT sum(b) OVER ( + ORDER BY a DESC RANGE BETWEEN 5 FOLLOWING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1 ; +} {{} {} 6 6 6} + +do_execsql_test 4.3.1 { + SELECT sum(b) OVER ( + ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND 10 FOLLOWING + ) FROM t1 ORDER BY 1 ; +} {6 6 6 15 15} + +do_execsql_test 4.4.1 { + SELECT sum(b) OVER ( + ORDER BY a ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 ; +} {3 6 9 9 12} + +do_execsql_test 4.4.2 { + SELECT sum(b) OVER ( + ORDER BY a DESC ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 ; +} {5 6 8 9 10} + +#========================================================================== + +do_execsql_test 5.0 { + INSERT INTO t3 VALUES + (NULL, 'bb', 355), (NULL, 'cc', 158), (NULL, 'aa', 399), + ('JJ', NULL, 839), ('FF', NULL, 618), ('BB', NULL, 393), + (NULL, 'bb', 629), (NULL, NULL, 667), (NULL, NULL, 870); +} {} + +do_execsql_test 5.1.1.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83} + +do_execsql_test 5.1.1.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1} + +do_execsql_test 5.1.2.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 + 899 113 9 899 113 9 899 113 9 899 113 16 899 113 16 899 113 16 + 899 113 16 899 113 16 899 113 16 899 113 16 979 102 44 979 102 44 + 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 + 979 102 44 979 102 44 979 102 44 979 102 49 979 102 49 979 102 49 + 979 102 49 979 102 49 979 102 56 979 102 56 979 102 56 979 102 56 + 979 102 56 979 102 56 979 102 56 979 102 62 979 102 62 979 102 62 + 979 102 62 979 102 62 979 102 62 979 102 75 979 102 75 979 102 75 + 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 + 979 102 75 979 102 75 979 102 75 979 102 75 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 + 979 113 25 979 113 25 979 113 25 979 113 33 979 113 33 979 113 33 + 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33} + +do_execsql_test 5.1.2.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {2947 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 2947 81 11 + 2947 81 11 2947 81 11 2947 81 11 5287 74 10 5287 74 10 5287 74 10 + 5287 74 10 5287 74 10 5287 74 10 5287 74 10 8400 65 9 8400 65 9 + 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 8400 65 9 + 8400 65 9 9664 57 8 9664 57 8 9664 57 8 9664 57 8 9664 57 8 + 9664 57 8 9664 57 8 9664 57 8 10626 46 7 10626 46 7 10626 46 7 + 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 + 10626 46 7 10626 46 7 12145 41 6 12145 41 6 12145 41 6 12145 41 6 + 12145 41 6 13949 34 5 13949 34 5 13949 34 5 13949 34 5 13949 34 5 + 13949 34 5 13949 34 5 15315 28 4 15315 28 4 15315 28 4 15315 28 4 + 15315 28 4 15315 28 4 18796 15 3 18796 15 3 18796 15 3 18796 15 3 + 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 18796 15 3 + 18796 15 3 18796 15 3 18796 15 3 21105 7 2 21105 7 2 21105 7 2 + 21105 7 2 21105 7 2 21105 7 2 21105 7 2 21105 7 2 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1} + +do_execsql_test 5.1.3.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {777 113 5 777 113 5 777 113 5 777 113 5 777 113 5 805 250 7 + 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 805 250 7 + 822 158 6 822 158 6 822 158 6 822 158 6 822 158 6 822 158 6 + 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 + 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 840 247 13 + 840 247 13 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 + 870 158 0 899 113 9 899 113 9 899 113 9 899 113 9 899 113 9 + 899 113 9 899 113 9 899 113 9 899 113 9 934 223 8 934 223 8 + 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 934 223 8 + 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 + 938 102 11 938 102 11 938 102 11 938 102 11 938 102 11 938 148 8 + 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 938 148 8 + 938 148 8 959 224 7 959 224 7 959 224 7 959 224 7 959 224 7 + 959 224 7 959 224 7 979 133 9 979 133 9 979 133 9 979 133 9 + 979 133 9 979 133 9 979 133 9 979 133 9 979 133 9} + +do_execsql_test 5.1.3.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 + 962 1 1 962 1 1 962 1 1 962 1 1 1264 1 1 1264 1 1 1264 1 1 + 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1366 1 1 1366 1 1 + 1366 1 1 1366 1 1 1366 1 1 1366 1 1 1519 1 1 1519 1 1 1519 1 1 + 1519 1 1 1519 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 1804 1 1 + 1804 1 1 1804 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 + 2050 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 2309 1 1 + 2309 1 1 2309 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 2340 1 1 + 2340 1 1 2340 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2947 1 1 + 2947 1 1 2947 1 1 2947 1 1 2947 1 1 3113 1 1 3113 1 1 3113 1 1 + 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3481 1 1 + 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1 + 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1} + +do_execsql_test 5.1.4.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 + 934 158 8 934 158 8 934 158 8 934 158 8 934 158 8 934 158 8 + 934 158 8 934 158 8 934 158 21 934 158 21 934 158 21 934 158 21 + 934 158 21 934 158 21 934 158 21 934 158 21 934 158 21 934 158 21 + 934 158 21 934 158 21 934 158 21 934 158 27 934 158 27 934 158 27 + 934 158 27 934 158 27 934 158 27 959 102 50 959 102 50 959 102 50 + 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 + 959 102 50 959 102 50 959 102 58 959 102 58 959 102 58 959 102 58 + 959 102 58 959 102 58 959 102 58 959 102 58 959 113 39 959 113 39 + 959 113 39 959 113 39 959 113 39 959 158 34 959 158 34 959 158 34 + 959 158 34 959 158 34 959 158 34 959 158 34 979 102 53 979 102 53 + 979 102 53 979 102 53 979 102 53 979 102 53 979 102 53 979 102 56 + 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 + 979 102 56 979 102 56 979 102 59 979 102 59 979 102 59 979 102 59 + 979 102 59 979 102 59 979 102 59 979 102 59 979 102 59} + +do_execsql_test 5.1.4.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 2050 1 1 4359 7 2 + 4359 7 2 4359 7 2 4359 7 2 4359 7 2 4359 7 2 4359 7 2 4359 7 2 + 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 + 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 + 7840 15 3 9206 28 4 9206 28 4 9206 28 4 9206 28 4 9206 28 4 + 9206 28 4 11010 34 5 11010 34 5 11010 34 5 11010 34 5 11010 34 5 + 11010 34 5 11010 34 5 12368 74 10 12368 74 10 12368 74 10 + 12368 74 10 12368 74 10 12368 74 10 12368 74 10 12529 41 6 + 12529 41 6 12529 41 6 12529 41 6 12529 41 6 12705 57 8 12705 57 8 + 12705 57 8 12705 57 8 12705 57 8 12705 57 8 12705 57 8 12705 57 8 + 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13491 46 7 + 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13509 65 9 + 13509 65 9 13509 65 9 13509 65 9 13509 65 9 13509 65 9 13509 65 9 + 13509 65 9 13509 65 9 13949 81 11 13949 81 11 13949 81 11 + 13949 81 11 13949 81 11 13949 81 11 13949 81 11 13949 81 11 + 13949 81 11} + +do_execsql_test 5.1.5.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {102 102 1 113 113 2 113 113 2 133 133 1 148 148 1 160 158 2 + 160 158 2 160 158 2 208 208 1 224 223 2 224 223 2 239 234 3 + 239 234 3 239 234 3 252 247 3 257 247 5 257 247 5 257 250 4 + 257 252 3 295 295 1 309 309 1 336 330 3 336 330 3 336 330 3 + 346 346 1 355 354 2 355 354 2 355 354 2 399 393 4 399 393 4 + 399 393 4 399 393 4 399 393 4 412 412 1 421 421 1 430 430 1 + 443 443 1 480 480 2 480 480 2 574 572 2 574 572 2 607 607 1 + 618 618 2 618 618 2 634 627 4 634 627 4 634 627 4 634 627 4 + 634 629 3 652 652 1 667 660 2 671 667 3 671 667 3 671 667 3 + 671 667 3 683 683 1 711 705 2 716 705 3 716 711 2 730 726 2 + 730 726 2 762 759 2 768 759 4 768 762 3 768 762 3 777 777 1 + 792 786 3 794 786 4 794 786 4 794 790 3 805 805 1 822 822 1 + 845 839 5 845 839 5 845 839 5 845 839 5 845 839 5 870 870 2 + 870 870 2 870 870 2 899 899 1 911 911 1 934 929 2 938 929 4 + 938 934 3 938 934 3 963 959 2 963 959 2 979 979 1} + +do_execsql_test 5.1.5.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 25 23 {} 34 29 + {} 36 31 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 43 37 {} 43 37 + {} 50 42 {} 60 51 {} 61 52 {} 64 55 {} 64 55 {} 67 57 {} 68 58 + {} 69 59 {} 70 60 {} 72 62 {} 78 67 {} 78 67 {} 78 67 {} 85 72 + {} 85 72 133 4 3 223 10 8 223 11 9 226 2 2 226 2 2 239 12 10 + 239 13 11 239 14 12 247 15 13 257 18 16 257 19 17 295 20 18 + 309 21 19 335 22 20 335 23 21 335 24 22 421 35 30 443 37 32 + 504 16 14 504 17 15 607 42 36 683 56 47 710 26 24 710 27 25 + 710 27 25 711 59 50 759 62 53 759 63 54 777 66 56 805 71 61 + 899 81 68 911 82 69 929 83 70 929 84 71 979 89 75 1334 51 43 + 1416 57 48 1416 58 49 1584 29 26 1584 29 26 1584 31 27 1584 32 28 + 1584 32 28 1891 49 41 1922 87 73 1922 88 74 2005 52 44 2005 52 44 + 2005 54 45 2005 55 46 2518 45 38 2518 46 39 2518 46 39 2518 48 40 + 2523 73 63 2523 73 63 2523 75 64 2523 76 65 2523 77 66} + +do_execsql_test 5.1.6.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {102 102 1 113 113 2 113 113 2 133 133 1 148 148 1 158 158 1 + 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 + 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 + 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 + 346 346 1 354 354 1 355 355 1 355 355 1 393 393 2 393 393 2 + 398 398 1 399 399 1 399 399 1 412 412 1 421 421 1 430 430 1 + 443 443 1 480 480 2 480 480 2 572 572 1 574 574 1 607 607 1 + 618 618 2 618 618 2 627 627 1 629 629 1 629 629 1 633 633 1 + 634 634 1 652 652 1 660 660 1 667 667 1 667 667 1 670 670 1 + 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 + 730 730 1 759 759 1 762 762 1 768 768 2 768 768 2 777 777 1 + 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 + 839 839 2 839 839 2 840 840 1 844 844 1 845 845 1 870 870 2 + 870 870 2 870 870 2 899 899 1 911 911 1 929 929 1 934 934 1 + 938 938 2 938 938 2 959 959 1 963 963 1 979 979 1} + +do_execsql_test 5.1.6.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 11 9 {} 12 10 + {} 13 11 {} 16 14 {} 17 15 {} 18 16 {} 22 20 {} 24 22 {} 25 23 + {} 26 24 {} 31 27 {} 34 29 {} 36 31 {} 38 33 {} 38 33 {} 40 34 + {} 41 35 {} 43 37 {} 43 37 {} 49 41 {} 50 42 {} 51 43 {} 54 45 + {} 59 50 {} 60 51 {} 61 52 {} 63 54 {} 64 55 {} 64 55 {} 67 57 + {} 68 58 {} 69 59 {} 70 60 {} 72 62 {} 75 64 {} 76 65 {} 78 67 + {} 78 67 {} 78 67 {} 84 71 {} 85 72 {} 85 72 133 4 3 223 10 8 + 226 2 2 226 2 2 239 14 12 247 15 13 257 19 17 295 20 18 + 309 21 19 335 23 21 421 35 30 443 37 32 607 42 36 627 45 38 + 633 48 40 671 55 46 683 56 47 705 57 48 710 27 25 710 27 25 + 711 58 49 759 62 53 777 66 56 786 29 26 786 29 26 798 32 28 + 798 32 28 805 71 61 845 77 66 899 81 68 911 82 69 929 83 70 + 959 87 73 963 88 74 979 89 75 1258 46 39 1258 46 39 1334 52 44 + 1334 52 44 1678 73 63 1678 73 63} + +do_execsql_test 5.1.7.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 113 81 979 113 82 979 133 80 979 148 79 979 158 77 + 979 158 78 979 160 77 979 208 76 979 223 75 979 224 74 979 234 73 + 979 238 72 979 239 71 979 247 70 979 250 69 979 252 68 979 256 67 + 979 257 66 979 295 65 979 309 64 979 330 63 979 335 62 979 336 61 + 979 346 60 979 354 59 979 355 58 979 355 58 979 393 56 979 393 57 + 979 398 55 979 399 54 979 399 54 979 412 53 979 421 52 979 430 51 + 979 443 50 979 480 48 979 480 49 979 572 47 979 574 46 979 607 45 + 979 618 43 979 618 44 979 627 42 979 629 41 979 629 41 979 633 40 + 979 634 39 979 652 38 979 660 37 979 667 36 979 667 36 979 670 35 + 979 671 34 979 683 33 979 705 32 979 711 31 979 716 30 979 726 29 + 979 730 28 979 759 27 979 762 26 979 768 24 979 768 25 979 777 23 + 979 786 22 979 790 21 979 792 20 979 794 19 979 805 18 979 822 17 + 979 839 15 979 839 16 979 840 14 979 844 13 979 845 12 979 870 10 + 979 870 11 979 870 11 979 899 9 979 911 8 979 929 7} + +do_execsql_test 5.1.7.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE NO OTHERS ) + ORDER BY 1 , 2 , 3 +} {3830 89 89 4741 88 88 5640 84 84 5640 85 85 5640 86 86 5640 87 87 + 6485 81 81 6485 82 82 6485 83 83 7324 80 80 8163 78 78 8163 79 79 + 8968 73 73 8968 74 74 8968 75 75 8968 76 76 8968 77 77 9745 69 69 + 9745 70 70 9745 71 71 9745 72 72 10504 65 65 10504 66 66 + 10504 67 67 10504 68 68 11215 64 64 11920 63 63 12603 62 62 + 13274 60 60 13274 61 61 13941 59 59 14608 55 55 14608 56 56 + 14608 57 57 14608 58 58 15241 54 54 15870 53 53 16499 52 52 + 17126 49 49 17126 50 50 17126 51 51 17733 44 44 17733 45 45 + 17733 46 46 17733 47 47 17733 48 48 18176 42 42 18176 43 43 + 18597 40 40 18597 41 41 18996 39 39 19395 37 37 19395 38 38 + 19788 36 36 20181 35 35 20536 34 34 20891 30 30 20891 31 31 + 20891 32 32 20891 33 33 21226 28 28 21226 29 29 21535 27 27 + 21830 26 26 22087 22 22 22087 23 23 22087 24 24 22087 25 25 + 22334 21 21 22573 17 17 22573 18 18 22573 19 19 22573 20 20 + 22796 11 11 22796 12 12 22796 13 13 22796 14 14 22796 15 15 + 22796 16 16 22929 10 10 23042 9 9 23155 1 1 23155 2 2 23155 3 3 + 23155 4 4 23155 5 5 23155 6 6 23155 7 7 23155 8 8} + +do_execsql_test 5.2.1.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {963 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 113 82} + +do_execsql_test 5.2.1.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {22176 1 1 22192 1 1 22196 1 1 22226 1 1 22244 1 1 22256 1 1 + 22310 1 1 22316 1 1 22316 1 1 22350 1 1 22378 1 1 22396 1 1 + 22444 1 1 22450 1 1 22472 1 1 22484 1 1 22488 1 1 22488 1 1 + 22522 1 1 22526 1 1 22526 1 1 22528 1 1 22548 1 1 22712 1 1 + 22734 1 1 22756 1 1 22756 1 1 22762 1 1 22762 1 1 22800 1 1 + 22800 1 1 22820 1 1 22846 1 1 22860 1 1 22898 1 1 22908 1 1 + 22916 1 1 22932 1 1 23022 1 1 23042 1 1 23042 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1 + 23155 1 1 23155 1 1 23155 1 1 23155 1 1 23155 1 1} + +do_execsql_test 5.2.2.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {839 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 + 899 113 8 899 113 8 899 113 15 899 113 15 899 113 15 899 113 15 + 899 113 15 899 113 15 899 113 15 899 234 8 963 113 24 979 102 43 + 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 979 102 43 + 979 102 43 979 102 43 979 102 43 979 102 48 979 102 48 979 102 48 + 979 102 48 979 102 48 979 102 55 979 102 55 979 102 55 979 102 55 + 979 102 55 979 102 55 979 102 55 979 102 61 979 102 61 979 102 61 + 979 102 61 979 102 61 979 102 61 979 102 74 979 102 74 979 102 74 + 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 979 102 74 + 979 102 74 979 102 74 979 102 74 979 102 74 979 102 82 979 102 82 + 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 979 113 24 + 979 113 24 979 113 24 979 113 32 979 113 32 979 113 32 979 113 32 + 979 113 32 979 113 32 979 113 32 979 113 32 979 113 43} + +do_execsql_test 5.2.2.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {2048 81 11 2108 81 11 2108 81 11 2690 81 11 2834 81 11 2947 81 11 + 2947 81 11 2947 81 11 2947 81 11 4482 74 10 4616 74 10 4844 74 10 + 4866 74 10 5287 74 10 5287 74 10 5287 74 10 7421 65 9 7437 65 9 + 7717 65 9 8045 65 9 8267 65 9 8400 65 9 8400 65 9 8400 65 9 + 8400 65 9 8735 57 8 9329 57 8 9664 57 8 9664 57 8 9664 57 8 + 9664 57 8 9664 57 8 9664 57 8 9959 46 7 10331 46 7 10626 46 7 + 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 10626 46 7 + 10626 46 7 10626 46 7 11368 41 6 11516 41 6 12032 41 6 12145 41 6 + 12145 41 6 12990 34 5 13104 34 5 13949 34 5 13949 34 5 13949 34 5 + 13949 34 5 13949 34 5 14556 28 4 14708 28 4 15315 28 4 15315 28 4 + 15315 28 4 15315 28 4 18085 15 3 18091 15 3 18163 15 3 18397 15 3 + 18403 15 3 18403 15 3 18549 15 3 18796 15 3 18796 15 3 18796 15 3 + 18796 15 3 18796 15 3 18796 15 3 20194 7 2 20478 7 2 20796 7 2 + 20866 7 2 20882 7 2 21105 7 2 21105 7 2 21105 7 2 22488 1 1 + 22526 1 1 22756 1 1 22800 1 1 23155 1 1 23155 1 1} + +do_execsql_test 5.2.3.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {667 158 0 671 250 6 759 158 5 768 113 4 777 113 4 777 113 4 + 777 113 4 777 252 4 792 247 12 805 250 6 805 250 6 805 250 6 + 805 250 6 805 250 6 805 398 6 822 158 5 822 158 5 822 158 5 + 822 158 5 822 346 5 839 113 8 840 247 12 840 247 12 840 247 12 + 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 840 247 12 + 840 247 12 840 247 12 840 393 12 845 224 6 870 102 10 870 158 0 + 870 158 0 870 158 0 870 158 0 870 355 0 899 113 8 899 113 8 + 899 113 8 899 113 8 899 113 8 899 113 8 899 113 8 899 234 8 + 911 223 7 929 148 7 934 223 7 934 223 7 934 223 7 934 223 7 + 934 223 7 934 223 7 934 239 7 938 102 10 938 102 10 938 102 10 + 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 938 102 10 + 938 148 7 938 148 7 938 148 7 938 148 7 938 148 7 938 148 7 + 938 160 7 938 208 10 959 224 6 959 224 6 959 224 6 959 224 6 + 959 224 6 959 238 6 963 133 8 979 133 8 979 133 8 979 133 8 + 979 133 8 979 133 8 979 133 8 979 133 8 979 330 8} + +do_execsql_test 5.2.3.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {295 1 1 335 1 1 607 1 1 667 1 1 742 1 1 759 1 1 845 1 1 + 890 1 1 929 1 1 959 1 1 962 1 1 962 1 1 962 1 1 962 1 1 + 962 1 1 962 1 1 962 1 1 962 1 1 962 1 1 1264 1 1 1264 1 1 + 1264 1 1 1264 1 1 1264 1 1 1264 1 1 1366 1 1 1366 1 1 1366 1 1 + 1366 1 1 1383 1 1 1398 1 1 1406 1 1 1421 1 1 1519 1 1 1519 1 1 + 1535 1 1 1651 1 1 1669 1 1 1682 1 1 1695 1 1 1804 1 1 1804 1 1 + 1804 1 1 1804 1 1 1804 1 1 1897 1 1 1919 1 1 2000 1 1 2048 1 1 + 2050 1 1 2050 1 1 2070 1 1 2086 1 1 2108 1 1 2108 1 1 2134 1 1 + 2150 1 1 2309 1 1 2309 1 1 2309 1 1 2340 1 1 2340 1 1 2340 1 1 + 2430 1 1 2690 1 1 2758 1 1 2770 1 1 2776 1 1 2834 1 1 2848 1 1 + 2947 1 1 2947 1 1 2947 1 1 2947 1 1 2980 1 1 3082 1 1 3088 1 1 + 3088 1 1 3113 1 1 3113 1 1 3113 1 1 3113 1 1 3234 1 1 3481 1 1 + 3481 1 1 3481 1 1 3481 1 1 3481 1 1 3481 1 1} + +do_execsql_test 5.2.4.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {667 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 355 0 + 911 158 7 934 158 7 934 158 7 934 158 7 934 158 7 934 158 7 + 934 158 7 934 158 7 934 158 20 934 158 20 934 158 20 934 158 20 + 934 158 20 934 158 20 934 158 20 934 158 20 934 158 20 934 158 20 + 934 158 20 934 158 20 934 158 20 934 158 26 934 158 26 934 158 26 + 934 158 26 934 158 26 934 158 26 934 158 33 959 102 49 959 102 49 + 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49 959 102 49 + 959 102 49 959 102 49 959 102 57 959 102 57 959 102 57 959 102 57 + 959 102 57 959 102 57 959 102 57 959 102 57 959 113 38 959 113 38 + 959 113 38 959 113 38 959 113 49 959 158 33 959 158 33 959 158 33 + 959 158 33 959 158 33 959 158 33 959 158 38 963 102 58 979 102 52 + 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52 979 102 52 + 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 979 102 55 + 979 102 55 979 102 55 979 102 55 979 102 58 979 102 58 979 102 58 + 979 102 58 979 102 58 979 102 58 979 102 58 979 102 58} + +do_execsql_test 5.2.4.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {1383 1 1 1421 1 1 1651 1 1 1695 1 1 2050 1 1 2050 1 1 3448 7 2 + 3732 7 2 4050 7 2 4120 7 2 4136 7 2 4359 7 2 4359 7 2 4359 7 2 + 7129 15 3 7135 15 3 7207 15 3 7441 15 3 7447 15 3 7447 15 3 + 7593 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 7840 15 3 + 7840 15 3 8447 28 4 8599 28 4 9206 28 4 9206 28 4 9206 28 4 + 9206 28 4 10051 34 5 10165 34 5 11010 34 5 11010 34 5 11010 34 5 + 11010 34 5 11010 34 5 11563 74 10 11697 74 10 11752 41 6 + 11776 57 8 11900 41 6 11925 74 10 11947 74 10 12368 74 10 + 12368 74 10 12368 74 10 12370 57 8 12416 41 6 12529 41 6 + 12529 41 6 12530 65 9 12546 65 9 12705 57 8 12705 57 8 12705 57 8 + 12705 57 8 12705 57 8 12705 57 8 12824 46 7 12826 65 9 + 13050 81 11 13110 81 11 13110 81 11 13154 65 9 13196 46 7 + 13376 65 9 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13491 46 7 + 13491 46 7 13491 46 7 13491 46 7 13491 46 7 13509 65 9 13509 65 9 + 13509 65 9 13509 65 9 13692 81 11 13836 81 11 13949 81 11 + 13949 81 11 13949 81 11 13949 81 11} + +do_execsql_test 5.2.5.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 113 113 1 + 113 113 1 158 158 1 160 158 1 160 158 2 223 223 1 224 224 1 + 238 234 2 239 234 2 239 238 2 252 250 2 256 252 2 257 247 4 + 257 247 4 257 250 3 335 330 2 336 330 2 336 335 2 355 354 1 + 355 354 2 355 355 1 399 393 3 399 393 3 399 393 3 399 393 3 + 399 393 4 480 480 1 480 480 1 572 572 1 574 574 1 618 618 1 + 618 618 1 633 629 2 634 627 3 634 627 3 634 627 4 634 629 3 + 667 667 1 670 667 2 671 667 2 671 667 2 671 667 3 711 711 1 + 711 711 1 716 705 2 726 726 1 730 730 1 762 762 1 768 759 3 + 768 762 2 768 762 2 792 790 2 792 790 2 794 786 3 794 786 3 + 844 839 4 845 839 4 845 839 4 845 839 4 845 839 4 870 870 1 + 870 870 1 870 870 2 934 934 1 938 929 3 938 934 2 938 934 2 + 959 959 1 963 963 1} + +do_execsql_test 5.2.5.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 10 8 + {} 14 12 {} 15 13 {} 19 17 {} 20 18 {} 21 19 {} 23 21 {} 25 23 + {} 34 29 {} 35 30 {} 36 31 {} 37 32 {} 38 33 {} 38 33 {} 40 34 + {} 41 35 {} 42 36 {} 43 37 {} 43 37 {} 50 42 {} 56 47 {} 60 51 + {} 61 52 {} 62 53 {} 64 55 {} 64 55 {} 66 56 {} 67 57 {} 68 58 + {} 69 59 {} 70 60 {} 71 61 {} 72 62 {} 78 67 {} 78 67 {} 78 67 + {} 81 68 {} 82 69 {} 83 70 {} 85 72 {} 85 72 {} 89 75 113 2 2 + 113 2 2 223 11 9 239 12 10 239 13 11 257 18 16 335 22 20 + 335 24 22 355 27 25 355 27 25 504 16 14 504 17 15 705 58 49 + 710 26 24 711 57 48 711 59 50 759 63 54 929 84 71 959 88 74 + 963 87 73 1185 32 28 1185 32 28 1191 29 26 1191 29 26 1334 51 43 + 1334 55 46 1338 52 44 1338 52 44 1584 31 27 1678 77 66 1684 73 63 + 1684 73 63 1885 48 40 1889 46 39 1889 46 39 1891 45 38 1891 49 41 + 2005 54 45 2523 75 64 2523 76 65} + +do_execsql_test 5.2.6.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 113 113 1 + 113 113 1 158 158 0 158 158 1 355 355 0 355 355 1 393 393 1 + 393 393 1 399 399 0 399 399 1 480 480 1 480 480 1 618 618 1 + 618 618 1 629 629 0 629 629 1 667 667 0 667 667 1 768 768 1 + 768 768 1 839 839 1 839 839 1 870 870 1 870 870 1 870 870 2 + 938 938 1 938 938 1} + +do_execsql_test 5.2.6.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 10 8 + {} 11 9 {} 12 10 {} 13 11 {} 14 12 {} 15 13 {} 16 14 {} 17 15 + {} 18 16 {} 19 17 {} 20 18 {} 21 19 {} 22 20 {} 23 21 {} 24 22 + {} 25 23 {} 26 24 {} 31 27 {} 34 29 {} 35 30 {} 36 31 {} 37 32 + {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 42 36 {} 43 37 {} 43 37 + {} 45 38 {} 48 40 {} 49 41 {} 50 42 {} 51 43 {} 54 45 {} 55 46 + {} 56 47 {} 57 48 {} 58 49 {} 59 50 {} 60 51 {} 61 52 {} 62 53 + {} 63 54 {} 64 55 {} 64 55 {} 66 56 {} 67 57 {} 68 58 {} 69 59 + {} 70 60 {} 71 61 {} 72 62 {} 75 64 {} 76 65 {} 77 66 {} 78 67 + {} 78 67 {} 78 67 {} 81 68 {} 82 69 {} 83 70 {} 84 71 {} 85 72 + {} 85 72 {} 87 73 {} 88 74 {} 89 75 113 2 2 113 2 2 355 27 25 + 355 27 25 393 29 26 393 29 26 399 32 28 399 32 28 629 46 39 + 629 46 39 667 52 44 667 52 44 839 73 63 839 73 63} + +do_execsql_test 5.2.7.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {963 929 6 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 83 979 113 80 979 113 81 979 113 82 979 133 79 979 148 78 + 979 158 76 979 158 77 979 160 76 979 208 75 979 223 74 979 224 73 + 979 234 72 979 238 71 979 239 70 979 247 69 979 250 68 979 252 67 + 979 256 66 979 257 65 979 295 64 979 309 64 979 330 62 979 335 61 + 979 336 60 979 346 59 979 354 59 979 355 57 979 355 57 979 393 55 + 979 393 56 979 398 54 979 399 53 979 399 53 979 412 52 979 421 51 + 979 430 50 979 443 49 979 480 47 979 480 48 979 572 47 979 574 45 + 979 607 44 979 618 42 979 618 43 979 627 41 979 629 40 979 629 41 + 979 633 39 979 634 38 979 652 37 979 660 36 979 667 35 979 667 35 + 979 670 34 979 671 33 979 683 32 979 705 31 979 711 30 979 716 29 + 979 726 28 979 730 27 979 759 26 979 762 25 979 768 23 979 768 24 + 979 777 22 979 786 21 979 790 20 979 792 19 979 794 18 979 805 17 + 979 822 17 979 839 14 979 839 15 979 840 13 979 844 12 979 845 11 + 979 870 9 979 870 10 979 870 10 979 899 8 979 911 7} + +do_execsql_test 5.2.7.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE CURRENT ROW ) + ORDER BY 1 , 2 , 3 +} {2851 89 89 3778 88 88 4681 87 87 5556 83 83 5574 82 82 5586 81 81 + 5640 84 84 5640 85 85 5640 86 86 7324 80 80 8123 77 77 8129 73 73 + 8129 74 74 8163 78 78 8163 79 79 8940 71 71 8968 75 75 8968 76 76 + 9727 66 66 9745 69 69 9745 70 70 9745 72 72 10504 65 65 + 10504 67 67 10504 68 68 11215 64 64 11844 62 62 11920 63 63 + 13274 60 60 13274 61 61 13897 58 58 13903 57 57 13925 56 56 + 13937 55 55 13941 59 59 15203 53 53 15241 54 54 15832 52 52 + 17100 48 48 17104 46 46 17104 47 47 17106 45 45 17126 49 49 + 17126 50 50 17126 51 51 17569 42 42 17733 44 44 18176 43 43 + 18597 40 40 18597 41 41 18952 37 37 18996 39 39 19395 38 38 + 19760 35 35 19788 36 36 20492 32 32 20492 33 33 20498 30 30 + 20536 34 34 20833 29 29 20871 28 28 20891 31 31 21180 27 27 + 21752 23 23 21830 26 26 22025 21 21 22087 22 22 22087 24 24 + 22087 25 25 22278 20 20 22316 19 19 22549 15 15 22557 14 14 + 22573 17 17 22573 18 18 22706 10 10 22796 11 11 22796 12 12 + 22796 13 13 22796 16 16 23022 4 4 23042 2 2 23042 3 3 23042 9 9 + 23155 1 1 23155 5 5 23155 6 6 23155 7 7 23155 8 8} + +do_execsql_test 5.3.1.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0} + +do_execsql_test 5.3.1.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1} + +do_execsql_test 5.3.2.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 899 113 9 899 113 9 899 113 9 899 113 9 + 899 113 9 899 113 9 899 113 9 899 113 16 899 113 16 899 113 16 + 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 899 113 16 + 979 102 44 979 102 44 979 102 44 979 102 44 979 102 44 979 102 49 + 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 979 102 49 + 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 979 102 56 + 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 + 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 979 102 62 + 979 102 62 979 102 75 979 102 75 979 102 75 979 102 75 979 102 75 + 979 102 75 979 102 75 979 102 75 979 102 83 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 113 25 979 113 25 979 113 25 + 979 113 25 979 113 25 979 113 25 979 113 25 979 113 25 979 113 33 + 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 979 113 33 + 979 113 33 979 113 33 979 113 33 979 113 33} + +do_execsql_test 5.3.2.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} 81 11 {} 81 11 {} 81 11 {} 81 11 {} 81 11 {} 81 11 {} 81 11 + {} 81 11 {} 81 11 2947 74 10 2947 74 10 2947 74 10 2947 74 10 + 2947 74 10 2947 74 10 2947 74 10 5287 65 9 5287 65 9 5287 65 9 + 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5287 65 9 5287 65 9 + 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 + 8400 57 8 8400 57 8 9664 46 7 9664 46 7 9664 46 7 9664 46 7 + 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 + 9664 46 7 10626 41 6 10626 41 6 10626 41 6 10626 41 6 10626 41 6 + 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12145 34 5 + 12145 34 5 13949 28 4 13949 28 4 13949 28 4 13949 28 4 13949 28 4 + 13949 28 4 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 + 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 15315 15 3 + 15315 15 3 15315 15 3 18796 7 2 18796 7 2 18796 7 2 18796 7 2 + 18796 7 2 18796 7 2 18796 7 2 18796 7 2 21105 1 1 21105 1 1 + 21105 1 1 21105 1 1 21105 1 1 21105 1 1} + +do_execsql_test 5.3.3.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0} + +do_execsql_test 5.3.3.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1} + +do_execsql_test 5.3.4.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 870 158 0 + 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 870 158 0 + 870 158 0 934 158 8 934 158 8 934 158 8 934 158 8 934 158 8 + 934 158 8 934 158 8 934 158 8 934 158 8 934 158 8 934 158 8 + 934 158 8 934 158 8 934 158 21 934 158 21 934 158 21 934 158 21 + 934 158 21 934 158 21 934 158 27 934 158 27 934 158 27 934 158 27 + 934 158 27 934 158 27 934 158 27 959 102 50 959 102 50 959 102 50 + 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 + 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 959 102 50 + 959 102 50 959 102 50 959 113 39 959 113 39 959 113 39 959 113 39 + 959 113 39 959 113 39 959 113 39 959 113 39 959 113 39 959 113 39 + 959 113 39 959 158 34 959 158 34 959 158 34 959 158 34 959 158 34 + 979 102 46 979 102 46 979 102 46 979 102 46 979 102 46 979 102 46 + 979 102 46 979 102 47 979 102 47 979 102 47 979 102 47 979 102 47 + 979 102 47 979 102 47 979 102 47 979 102 47} + +do_execsql_test 5.3.4.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 2050 7 2 2050 7 2 + 2050 7 2 2050 7 2 2050 7 2 2050 7 2 2050 7 2 2050 7 2 4359 15 3 + 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 + 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 + 7840 28 4 7840 28 4 7840 28 4 7840 28 4 7840 28 4 7840 28 4 + 9206 34 5 9206 34 5 9206 34 5 9206 34 5 9206 34 5 9206 34 5 + 9206 34 5 10028 74 10 10028 74 10 10028 74 10 10028 74 10 + 10028 74 10 10028 74 10 10028 74 10 10396 65 9 10396 65 9 + 10396 65 9 10396 65 9 10396 65 9 10396 65 9 10396 65 9 10396 65 9 + 10396 65 9 11002 81 11 11002 81 11 11002 81 11 11002 81 11 + 11002 81 11 11002 81 11 11002 81 11 11002 81 11 11002 81 11 + 11010 41 6 11010 41 6 11010 41 6 11010 41 6 11010 41 6 11441 57 8 + 11441 57 8 11441 57 8 11441 57 8 11441 57 8 11441 57 8 11441 57 8 + 11441 57 8 12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7 + 12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7} + +do_execsql_test 5.3.5.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 158 158 1 160 160 1 160 160 1 223 223 1 224 224 1 + 238 234 2 239 234 2 239 238 2 252 250 2 256 252 2 257 247 4 + 257 247 4 257 250 3 335 330 2 336 330 2 336 335 2 354 354 1 + 354 354 1 355 355 1 398 393 3 398 393 3 399 393 3 399 398 2 + 399 398 2 572 572 1 574 574 1 633 629 2 634 627 3 634 627 3 + 634 627 3 634 629 3 667 667 1 670 667 2 671 667 2 671 670 2 + 671 670 2 711 711 1 711 711 1 716 705 2 726 726 1 730 730 1 + 762 762 1 762 762 1 762 762 1 768 759 3 792 790 2 792 790 2 + 794 786 3 794 786 3 844 839 4 845 839 4 845 839 4 845 840 3 + 845 840 3 934 934 1 934 934 1 934 934 1 938 929 3 959 959 1 + 963 963 1} + +do_execsql_test 5.3.5.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 2 2 {} 2 2 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 + {} 9 7 {} 10 8 {} 14 12 {} 15 13 {} 19 17 {} 20 18 {} 21 19 + {} 23 21 {} 25 23 {} 27 25 {} 27 25 {} 34 29 {} 35 30 {} 36 31 + {} 37 32 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 42 36 {} 43 37 + {} 43 37 {} 50 42 {} 56 47 {} 60 51 {} 61 52 {} 62 53 {} 64 55 + {} 64 55 {} 66 56 {} 67 57 {} 68 58 {} 69 59 {} 70 60 {} 71 61 + {} 72 62 {} 78 67 {} 78 67 {} 78 67 {} 81 68 {} 82 69 {} 83 70 + {} 85 72 {} 85 72 {} 89 75 223 11 9 239 12 10 239 13 11 + 257 18 16 335 22 20 335 24 22 504 16 14 504 17 15 671 52 44 + 671 52 44 705 58 49 710 26 24 711 57 48 711 59 50 759 63 54 + 786 32 28 786 32 28 798 29 26 798 29 26 845 73 63 845 73 63 + 929 84 71 959 88 74 963 87 73 1260 46 39 1260 46 39 1334 51 43 + 1334 55 46 1584 31 27 1678 77 66 1885 48 40 1891 45 38 1891 49 41 + 2005 54 45 2523 75 64 2523 76 65} + +do_execsql_test 5.3.6.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0 + {} {} 0 {} {} 0 {} {} 0 {} {} 0 {} {} 0} + +do_execsql_test 5.3.6.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 2 2 {} 2 2 {} 4 3 {} 5 4 {} 6 5 {} 6 5 {} 8 6 + {} 9 7 {} 10 8 {} 11 9 {} 12 10 {} 13 11 {} 14 12 {} 15 13 + {} 16 14 {} 17 15 {} 18 16 {} 19 17 {} 20 18 {} 21 19 {} 22 20 + {} 23 21 {} 24 22 {} 25 23 {} 26 24 {} 27 25 {} 27 25 {} 29 26 + {} 29 26 {} 31 27 {} 32 28 {} 32 28 {} 34 29 {} 35 30 {} 36 31 + {} 37 32 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 42 36 {} 43 37 + {} 43 37 {} 45 38 {} 46 39 {} 46 39 {} 48 40 {} 49 41 {} 50 42 + {} 51 43 {} 52 44 {} 52 44 {} 54 45 {} 55 46 {} 56 47 {} 57 48 + {} 58 49 {} 59 50 {} 60 51 {} 61 52 {} 62 53 {} 63 54 {} 64 55 + {} 64 55 {} 66 56 {} 67 57 {} 68 58 {} 69 59 {} 70 60 {} 71 61 + {} 72 62 {} 73 63 {} 73 63 {} 75 64 {} 76 65 {} 77 66 {} 78 67 + {} 78 67 {} 78 67 {} 81 68 {} 82 69 {} 83 70 {} 84 71 {} 85 72 + {} 85 72 {} 87 73 {} 88 74 {} 89 75} + +do_execsql_test 5.3.7.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {963 929 6 979 102 82 979 102 82 979 102 82 979 102 82 979 102 82 + 979 102 83 979 113 80 979 113 81 979 113 82 979 133 79 979 148 78 + 979 158 76 979 158 77 979 160 76 979 208 75 979 223 74 979 224 73 + 979 234 72 979 238 71 979 239 70 979 247 69 979 250 68 979 252 67 + 979 256 66 979 257 65 979 295 64 979 309 64 979 330 62 979 335 61 + 979 336 60 979 346 59 979 354 59 979 355 57 979 355 57 979 393 55 + 979 393 56 979 398 54 979 399 53 979 399 53 979 412 52 979 421 51 + 979 430 50 979 443 49 979 480 47 979 480 48 979 572 47 979 574 45 + 979 607 44 979 618 42 979 618 43 979 627 41 979 629 40 979 629 41 + 979 633 39 979 634 38 979 652 37 979 660 36 979 667 35 979 667 35 + 979 670 34 979 671 33 979 683 32 979 705 31 979 711 30 979 716 29 + 979 726 28 979 730 27 979 759 26 979 762 25 979 768 23 979 768 24 + 979 777 22 979 786 21 979 790 20 979 792 19 979 794 18 979 805 17 + 979 822 17 979 839 14 979 839 15 979 840 13 979 844 12 979 845 11 + 979 870 9 979 870 10 979 870 10 979 899 8 979 911 7} + +do_execsql_test 5.3.7.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE GROUP ) + ORDER BY 1 , 2 , 3 +} {2851 89 89 3778 88 88 4681 87 87 5556 83 83 5574 82 82 5586 81 81 + 5640 84 84 5640 85 85 5640 86 86 7324 80 80 8123 77 77 8129 73 73 + 8129 74 74 8163 78 78 8163 79 79 8940 71 71 8968 75 75 8968 76 76 + 9727 66 66 9745 69 69 9745 70 70 9745 72 72 10504 65 65 + 10504 67 67 10504 68 68 11215 64 64 11844 62 62 11920 63 63 + 13274 60 60 13274 61 61 13897 58 58 13903 57 57 13925 56 56 + 13937 55 55 13941 59 59 15203 53 53 15241 54 54 15832 52 52 + 17100 48 48 17104 46 46 17104 47 47 17106 45 45 17126 49 49 + 17126 50 50 17126 51 51 17569 42 42 17733 44 44 18176 43 43 + 18597 40 40 18597 41 41 18952 37 37 18996 39 39 19395 38 38 + 19760 35 35 19788 36 36 20492 32 32 20492 33 33 20498 30 30 + 20536 34 34 20833 29 29 20871 28 28 20891 31 31 21180 27 27 + 21752 23 23 21830 26 26 22025 21 21 22087 22 22 22087 24 24 + 22087 25 25 22278 20 20 22316 19 19 22549 15 15 22557 14 14 + 22573 17 17 22573 18 18 22706 10 10 22796 11 11 22796 12 12 + 22796 13 13 22796 16 16 23022 4 4 23042 2 2 23042 3 3 23042 9 9 + 23155 1 1 23155 5 5 23155 6 6 23155 7 7 23155 8 8} + +do_execsql_test 5.4.1.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 + 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 + 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 + 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 + 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 + 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 + 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 + 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 + 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 + 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 + 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 + 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 + 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 + 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 + 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1} + +do_execsql_test 5.4.1.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + 113 1 1 113 1 1 133 1 1 223 1 1 239 1 1 247 1 1 257 1 1 + 295 1 1 309 1 1 335 1 1 355 1 1 355 1 1 393 1 1 393 1 1 + 399 1 1 399 1 1 421 1 1 443 1 1 607 1 1 627 1 1 629 1 1 + 629 1 1 633 1 1 667 1 1 667 1 1 671 1 1 683 1 1 705 1 1 + 711 1 1 759 1 1 777 1 1 805 1 1 839 1 1 839 1 1 845 1 1 + 899 1 1 911 1 1 929 1 1 959 1 1 963 1 1 979 1 1} + +do_execsql_test 5.4.2.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {113 113 1 234 234 1 257 257 1 336 336 1 354 354 1 768 768 1 + 839 839 1 839 839 1 899 113 10 899 113 10 899 113 10 899 113 10 + 899 113 10 899 113 10 899 113 10 899 113 17 899 113 17 899 113 17 + 899 113 17 899 113 17 899 113 17 899 113 17 899 899 1 963 113 17 + 979 102 34 979 102 45 979 102 45 979 102 45 979 102 45 979 102 45 + 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 979 102 50 + 979 102 50 979 102 57 979 102 57 979 102 57 979 102 57 979 102 57 + 979 102 57 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 + 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 979 102 63 + 979 102 63 979 102 63 979 102 76 979 102 76 979 102 76 979 102 76 + 979 102 76 979 102 76 979 102 76 979 102 76 979 102 83 979 102 83 + 979 102 83 979 102 83 979 102 83 979 102 83 979 113 17 979 113 26 + 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 979 113 26 + 979 113 26 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34 + 979 113 34 979 113 34 979 113 34 979 113 34 979 113 34} + +do_execsql_test 5.4.2.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {{} 81 11 {} 81 11 {} 81 11 {} 81 11 113 81 11 257 81 11 + 839 81 11 839 81 11 899 81 11 2947 74 10 2947 74 10 2947 74 10 + 3368 74 10 3390 74 10 3618 74 10 3752 74 10 5287 65 9 5287 65 9 + 5287 65 9 5287 65 9 5420 65 9 5642 65 9 5970 65 9 6250 65 9 + 6266 65 9 8400 57 8 8400 57 8 8400 57 8 8400 57 8 8400 57 8 + 8400 57 8 8735 57 8 9329 57 8 9664 46 7 9664 46 7 9664 46 7 + 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 9664 46 7 + 9959 46 7 10331 46 7 10626 41 6 10626 41 6 10739 41 6 11255 41 6 + 11403 41 6 12145 34 5 12145 34 5 12145 34 5 12145 34 5 12145 34 5 + 12990 34 5 13104 34 5 13949 28 4 13949 28 4 13949 28 4 13949 28 4 + 14556 28 4 14708 28 4 15315 15 3 15315 15 3 15315 15 3 15315 15 3 + 15315 15 3 15315 15 3 15562 15 3 15708 15 3 15708 15 3 15714 15 3 + 15948 15 3 16020 15 3 16026 15 3 18796 7 2 18796 7 2 18796 7 2 + 19019 7 2 19035 7 2 19105 7 2 19423 7 2 19707 7 2 21105 1 1 + 21105 1 1 21460 1 1 21504 1 1 21734 1 1 21772 1 1} + +do_execsql_test 5.4.3.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 + 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 + 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 + 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 + 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 + 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 + 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 + 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 + 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 + 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 + 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 + 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 + 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 + 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 + 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1} + +do_execsql_test 5.4.3.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( PARTITION BY coalesce(a, '') + RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 {} 1 1 + 113 1 1 113 1 1 133 1 1 223 1 1 239 1 1 247 1 1 257 1 1 + 295 1 1 309 1 1 335 1 1 355 1 1 355 1 1 393 1 1 393 1 1 + 399 1 1 399 1 1 421 1 1 443 1 1 607 1 1 627 1 1 629 1 1 + 629 1 1 633 1 1 667 1 1 667 1 1 671 1 1 683 1 1 705 1 1 + 711 1 1 759 1 1 777 1 1 805 1 1 839 1 1 839 1 1 845 1 1 + 899 1 1 911 1 1 929 1 1 959 1 1 963 1 1 979 1 1} + +do_execsql_test 5.4.4.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {158 158 0 355 355 0 399 399 0 629 629 0 667 667 0 870 158 1 + 870 158 1 870 158 1 870 158 1 870 158 1 870 158 1 870 870 0 + 911 158 1 934 158 1 934 158 9 934 158 9 934 158 9 934 158 9 + 934 158 9 934 158 9 934 158 9 934 158 9 934 158 9 934 158 9 + 934 158 9 934 158 9 934 158 9 934 158 22 934 158 22 934 158 22 + 934 158 22 934 158 22 934 158 22 934 158 28 934 158 28 934 158 28 + 934 158 28 934 158 28 934 158 28 959 102 40 959 102 51 959 102 51 + 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51 + 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51 959 102 51 + 959 102 51 959 113 35 959 113 40 959 113 40 959 113 40 959 113 40 + 959 113 40 959 113 40 959 113 40 959 113 40 959 113 40 959 113 40 + 959 158 28 959 158 35 959 158 35 959 158 35 959 158 35 963 102 51 + 979 102 47 979 102 47 979 102 47 979 102 47 979 102 47 979 102 47 + 979 102 47 979 102 48 979 102 48 979 102 48 979 102 48 979 102 48 + 979 102 48 979 102 48 979 102 48 979 102 48 979 102 51} + +do_execsql_test 5.4.4.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY a GROUPS 6 PRECEDING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 1 1 355 1 1 399 1 1 629 1 1 667 1 1 2050 7 2 + 2050 7 2 2050 7 2 2273 7 2 2289 7 2 2359 7 2 2677 7 2 2961 7 2 + 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 4359 15 3 + 4606 15 3 4752 15 3 4752 15 3 4758 15 3 4992 15 3 5064 15 3 + 5070 15 3 7840 28 4 7840 28 4 7840 28 4 7840 28 4 8447 28 4 + 8599 28 4 9206 34 5 9206 34 5 9206 34 5 9206 34 5 9206 34 5 + 10028 74 10 10028 74 10 10028 74 10 10051 34 5 10165 34 5 + 10396 65 9 10396 65 9 10396 65 9 10396 65 9 10449 74 10 + 10471 74 10 10529 65 9 10699 74 10 10751 65 9 10833 74 10 + 11002 81 11 11002 81 11 11002 81 11 11002 81 11 11010 41 6 + 11010 41 6 11079 65 9 11115 81 11 11123 41 6 11259 81 11 + 11359 65 9 11375 65 9 11441 57 8 11441 57 8 11441 57 8 11441 57 8 + 11441 57 8 11441 57 8 11639 41 6 11776 57 8 11787 41 6 + 11841 81 11 11841 81 11 11901 81 11 12370 57 8 12529 46 7 + 12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7 12529 46 7 + 12529 46 7 12529 46 7 12824 46 7 13196 46 7} + +do_execsql_test 5.4.5.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 160 158 1 + 160 158 2 160 158 2 208 208 1 224 223 2 224 223 2 239 234 3 + 239 234 3 239 234 3 252 247 3 257 247 5 257 247 5 257 250 4 + 257 252 3 295 295 1 309 309 1 336 330 3 336 330 3 336 330 3 + 346 346 1 355 354 1 355 354 2 355 354 2 399 393 3 399 393 3 + 399 393 3 399 393 4 399 393 4 412 412 1 421 421 1 430 430 1 + 443 443 1 480 480 1 480 480 1 574 572 2 574 572 2 607 607 1 + 618 618 1 618 618 1 634 627 3 634 627 4 634 627 4 634 627 4 + 634 629 3 652 652 1 667 660 2 671 667 2 671 667 3 671 667 3 + 671 667 3 683 683 1 711 705 2 716 705 3 716 711 2 730 726 2 + 730 726 2 762 759 2 768 759 4 768 762 2 768 762 2 777 777 1 + 792 786 3 794 786 4 794 786 4 794 790 3 805 805 1 822 822 1 + 845 839 4 845 839 4 845 839 5 845 839 5 845 839 5 870 870 0 + 870 870 1 870 870 1 899 899 1 911 911 1 934 929 2 938 929 4 + 938 934 2 938 934 2 963 959 2 963 959 2 979 979 1} + +do_execsql_test 5.4.5.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 6 PRECEDING AND 7 FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 25 23 {} 34 29 + {} 36 31 {} 38 33 {} 38 33 {} 40 34 {} 41 35 {} 43 37 {} 43 37 + {} 50 42 {} 60 51 {} 61 52 {} 64 55 {} 64 55 {} 67 57 {} 68 58 + {} 69 59 {} 70 60 {} 72 62 {} 78 67 {} 78 67 {} 78 67 {} 85 72 + {} 85 72 113 2 2 113 2 2 133 4 3 223 10 8 223 11 9 239 12 10 + 239 13 11 239 14 12 247 15 13 257 18 16 257 19 17 295 20 18 + 309 21 19 335 22 20 335 23 21 335 24 22 355 27 25 355 27 25 + 421 35 30 443 37 32 504 16 14 504 17 15 607 42 36 683 56 47 + 710 26 24 711 59 50 759 62 53 759 63 54 777 66 56 805 71 61 + 899 81 68 911 82 69 929 83 70 929 84 71 979 89 75 1185 32 28 + 1185 32 28 1191 29 26 1191 29 26 1334 51 43 1338 52 44 1338 52 44 + 1416 57 48 1416 58 49 1584 31 27 1684 73 63 1684 73 63 1889 46 39 + 1889 46 39 1891 49 41 1922 87 73 1922 88 74 2005 54 45 2005 55 46 + 2518 45 38 2518 48 40 2523 75 64 2523 76 65 2523 77 66} + +do_execsql_test 5.4.6.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {102 102 1 113 113 1 113 113 1 133 133 1 148 148 1 158 158 0 + 158 158 1 160 160 1 208 208 1 223 223 1 224 224 1 234 234 1 + 238 238 1 239 239 1 247 247 1 250 250 1 252 252 1 256 256 1 + 257 257 1 295 295 1 309 309 1 330 330 1 335 335 1 336 336 1 + 346 346 1 354 354 1 355 355 0 355 355 1 393 393 1 393 393 1 + 398 398 1 399 399 0 399 399 1 412 412 1 421 421 1 430 430 1 + 443 443 1 480 480 1 480 480 1 572 572 1 574 574 1 607 607 1 + 618 618 1 618 618 1 627 627 1 629 629 0 629 629 1 633 633 1 + 634 634 1 652 652 1 660 660 1 667 667 0 667 667 1 670 670 1 + 671 671 1 683 683 1 705 705 1 711 711 1 716 716 1 726 726 1 + 730 730 1 759 759 1 762 762 1 768 768 1 768 768 1 777 777 1 + 786 786 1 790 790 1 792 792 1 794 794 1 805 805 1 822 822 1 + 839 839 1 839 839 1 840 840 1 844 844 1 845 845 1 870 870 0 + 870 870 1 870 870 1 899 899 1 911 911 1 929 929 1 934 934 1 + 938 938 1 938 938 1 959 959 1 963 963 1 979 979 1} + +do_execsql_test 5.4.6.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c RANGE BETWEEN 0 PRECEDING AND 0 FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {{} 1 1 {} 5 4 {} 6 5 {} 6 5 {} 8 6 {} 9 7 {} 11 9 {} 12 10 + {} 13 11 {} 16 14 {} 17 15 {} 18 16 {} 22 20 {} 24 22 {} 25 23 + {} 26 24 {} 31 27 {} 34 29 {} 36 31 {} 38 33 {} 38 33 {} 40 34 + {} 41 35 {} 43 37 {} 43 37 {} 49 41 {} 50 42 {} 51 43 {} 54 45 + {} 59 50 {} 60 51 {} 61 52 {} 63 54 {} 64 55 {} 64 55 {} 67 57 + {} 68 58 {} 69 59 {} 70 60 {} 72 62 {} 75 64 {} 76 65 {} 78 67 + {} 78 67 {} 78 67 {} 84 71 {} 85 72 {} 85 72 113 2 2 113 2 2 + 133 4 3 223 10 8 239 14 12 247 15 13 257 19 17 295 20 18 + 309 21 19 335 23 21 355 27 25 355 27 25 393 29 26 393 29 26 + 399 32 28 399 32 28 421 35 30 443 37 32 607 42 36 627 45 38 + 629 46 39 629 46 39 633 48 40 667 52 44 667 52 44 671 55 46 + 683 56 47 705 57 48 711 58 49 759 62 53 777 66 56 805 71 61 + 839 73 63 839 73 63 845 77 66 899 81 68 911 82 69 929 83 70 + 959 87 73 963 88 74 979 89 75} + +do_execsql_test 5.4.7.1 { + SELECT max(c) OVER win, + min(c) OVER win, + count(a) OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 979 102 83 + 979 102 83 979 113 81 979 113 82 979 133 80 979 148 79 979 158 77 + 979 158 78 979 160 77 979 208 76 979 223 75 979 224 74 979 234 73 + 979 238 72 979 239 71 979 247 70 979 250 69 979 252 68 979 256 67 + 979 257 66 979 295 65 979 309 64 979 330 63 979 335 62 979 336 61 + 979 346 60 979 354 59 979 355 58 979 355 58 979 393 56 979 393 57 + 979 398 55 979 399 54 979 399 54 979 412 53 979 421 52 979 430 51 + 979 443 50 979 480 48 979 480 49 979 572 47 979 574 46 979 607 45 + 979 618 43 979 618 44 979 627 42 979 629 41 979 629 41 979 633 40 + 979 634 39 979 652 38 979 660 37 979 667 36 979 667 36 979 670 35 + 979 671 34 979 683 33 979 705 32 979 711 31 979 716 30 979 726 29 + 979 730 28 979 759 27 979 762 26 979 768 24 979 768 25 979 777 23 + 979 786 22 979 790 21 979 792 20 979 794 19 979 805 18 979 822 17 + 979 839 15 979 839 16 979 840 14 979 844 13 979 845 12 979 870 10 + 979 870 11 979 870 11 979 899 9 979 911 8 979 929 7} + +do_execsql_test 5.4.7.2 { + SELECT sum(c) FILTER (WHERE (c%2)!=0) OVER win, + rank() OVER win, + dense_rank() OVER win + FROM t3 + WINDOW win AS ( ORDER BY c , b , a + ROWS BETWEEN 6 PRECEDING AND UNBOUNDED FOLLOWING EXCLUDE TIES ) + ORDER BY 1 , 2 , 3 +} {3830 89 89 4741 88 88 5640 84 84 5640 85 85 5640 86 86 5640 87 87 + 6485 81 81 6485 82 82 6485 83 83 7324 80 80 8163 78 78 8163 79 79 + 8968 73 73 8968 74 74 8968 75 75 8968 76 76 8968 77 77 9745 69 69 + 9745 70 70 9745 71 71 9745 72 72 10504 65 65 10504 66 66 + 10504 67 67 10504 68 68 11215 64 64 11920 63 63 12603 62 62 + 13274 60 60 13274 61 61 13941 59 59 14608 55 55 14608 56 56 + 14608 57 57 14608 58 58 15241 54 54 15870 53 53 16499 52 52 + 17126 49 49 17126 50 50 17126 51 51 17733 44 44 17733 45 45 + 17733 46 46 17733 47 47 17733 48 48 18176 42 42 18176 43 43 + 18597 40 40 18597 41 41 18996 39 39 19395 37 37 19395 38 38 + 19788 36 36 20181 35 35 20536 34 34 20891 30 30 20891 31 31 + 20891 32 32 20891 33 33 21226 28 28 21226 29 29 21535 27 27 + 21830 26 26 22087 22 22 22087 23 23 22087 24 24 22087 25 25 + 22334 21 21 22573 17 17 22573 18 18 22573 19 19 22573 20 20 + 22796 11 11 22796 12 12 22796 13 13 22796 14 14 22796 15 15 + 22796 16 16 22929 10 10 23042 9 9 23155 1 1 23155 2 2 23155 3 3 + 23155 4 4 23155 5 5 23155 6 6 23155 7 7 23155 8 8} + +#========================================================================== + +do_execsql_test 6.0 { + DROP TABLE IF EXISTS t2; + CREATE TABLE t2(a TEXT, b INTEGER); + INSERT INTO t2 VALUES('A', NULL); + INSERT INTO t2 VALUES('B', NULL); + INSERT INTO t2 VALUES('C', 1); +} {} + +do_execsql_test 6.1 { + SELECT group_concat(a, '.') OVER ( + ORDER BY b RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING + ) + FROM t2 +} {A.B A.B {}} + +do_execsql_test 6.2 { + SELECT group_concat(a, '.') OVER ( + ORDER BY b DESC RANGE BETWEEN 7 PRECEDING AND 2 PRECEDING + ) + FROM t2 +} {{} A.B A.B} + +finish_test diff --git a/test/windowerr.tcl b/test/windowerr.tcl new file mode 100644 index 0000000000..272ce6bae7 --- /dev/null +++ b/test/windowerr.tcl @@ -0,0 +1,69 @@ +# 2018 May 19 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# + +source [file join [file dirname $argv0] pg_common.tcl] + +#========================================================================= + +start_test windowerr "2019 March 01" +ifcapable !windowfunc + +execsql_test 1.0 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a INTEGER, b INTEGER); + INSERT INTO t1 VALUES(1, 1); + INSERT INTO t1 VALUES(2, 2); + INSERT INTO t1 VALUES(3, 3); + INSERT INTO t1 VALUES(4, 4); + INSERT INTO t1 VALUES(5, 5); +} + +foreach {tn frame} { + 1 "ORDER BY a ROWS BETWEEN -1 PRECEDING AND 1 FOLLOWING" + 2 "ORDER BY a ROWS BETWEEN 1 PRECEDING AND -1 FOLLOWING" + + 3 "ORDER BY a RANGE BETWEEN -1 PRECEDING AND 1 FOLLOWING" + 4 "ORDER BY a RANGE BETWEEN 1 PRECEDING AND -1 FOLLOWING" + + 5 "ORDER BY a GROUPS BETWEEN -1 PRECEDING AND 1 FOLLOWING" + 6 "ORDER BY a GROUPS BETWEEN 1 PRECEDING AND -1 FOLLOWING" + + 7 "ORDER BY a,b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING" + + 8 "PARTITION BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING" +} { + errorsql_test 1.$tn " + SELECT a, sum(b) OVER ( + $frame + ) FROM t1 ORDER BY 1 + " +} +errorsql_test 2.1 { + SELECT sum( sum(a) OVER () ) FROM t1; +} + +errorsql_test 2.2 { + SELECT sum(a) OVER () AS xyz FROM t1 ORDER BY sum(xyz); +} + +errorsql_test 3.0 { + SELECT sum(a) OVER win FROM t1 + WINDOW win AS (ROWS BETWEEN 'hello' PRECEDING AND 10 FOLLOWING) +} +errorsql_test 3.2 { + SELECT sum(a) OVER win FROM t1 + WINDOW win AS (ROWS BETWEEN 10 PRECEDING AND x'ABCD' FOLLOWING) +} + + +finish_test + diff --git a/test/windowerr.test b/test/windowerr.test new file mode 100644 index 0000000000..9a4f0a6464 --- /dev/null +++ b/test/windowerr.test @@ -0,0 +1,111 @@ +# 2019 March 01 +# +# The author disclaims copyright to this source code. In place of +# a legal notice, here is a blessing: +# +# May you do good and not evil. +# May you find forgiveness for yourself and forgive others. +# May you share freely, never taking more than you give. +# +#*********************************************************************** +# This file implements regression tests for SQLite library. +# + +#################################################### +# DO NOT EDIT! THIS FILE IS AUTOMATICALLY GENERATED! +#################################################### + +set testdir [file dirname $argv0] +source $testdir/tester.tcl +set testprefix windowerr + +ifcapable !windowfunc { finish_test ; return } +do_execsql_test 1.0 { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(a INTEGER, b INTEGER); + INSERT INTO t1 VALUES(1, 1); + INSERT INTO t1 VALUES(2, 2); + INSERT INTO t1 VALUES(3, 3); + INSERT INTO t1 VALUES(4, 4); + INSERT INTO t1 VALUES(5, 5); +} {} + +# PG says ERROR: frame starting offset must not be negative +do_test 1.1 { catch { execsql { + SELECT a, sum(b) OVER ( + ORDER BY a ROWS BETWEEN -1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: frame ending offset must not be negative +do_test 1.2 { catch { execsql { + SELECT a, sum(b) OVER ( + ORDER BY a ROWS BETWEEN 1 PRECEDING AND -1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: invalid preceding or following size in window function +do_test 1.3 { catch { execsql { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN -1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: invalid preceding or following size in window function +do_test 1.4 { catch { execsql { + SELECT a, sum(b) OVER ( + ORDER BY a RANGE BETWEEN 1 PRECEDING AND -1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: frame starting offset must not be negative +do_test 1.5 { catch { execsql { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN -1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: frame ending offset must not be negative +do_test 1.6 { catch { execsql { + SELECT a, sum(b) OVER ( + ORDER BY a GROUPS BETWEEN 1 PRECEDING AND -1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column +do_test 1.7 { catch { execsql { + SELECT a, sum(b) OVER ( + ORDER BY a,b RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column +do_test 1.8 { catch { execsql { + SELECT a, sum(b) OVER ( + PARTITION BY a RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING + ) FROM t1 ORDER BY 1 +} } } 1 + +# PG says ERROR: aggregate function calls cannot contain window function calls +do_test 2.1 { catch { execsql { + SELECT sum( sum(a) OVER () ) FROM t1; +} } } 1 + +# PG says ERROR: column "xyz" does not exist +do_test 2.2 { catch { execsql { + SELECT sum(a) OVER () AS xyz FROM t1 ORDER BY sum(xyz); +} } } 1 + +# PG says ERROR: invalid input syntax for integer: "hello" +do_test 3.0 { catch { execsql { + SELECT sum(a) OVER win FROM t1 + WINDOW win AS (ROWS BETWEEN 'hello' PRECEDING AND 10 FOLLOWING) +} } } 1 + +# PG says ERROR: argument of ROWS must be type bigint, not type bit +do_test 3.2 { catch { execsql { + SELECT sum(a) OVER win FROM t1 + WINDOW win AS (ROWS BETWEEN 10 PRECEDING AND x'ABCD' FOLLOWING) +} } } 1 + +finish_test diff --git a/test/windowfault.test b/test/windowfault.test index 9a3b219aa7..6c2554ac3c 100644 --- a/test/windowfault.test +++ b/test/windowfault.test @@ -28,7 +28,7 @@ do_execsql_test 1.0 { } faultsim_save_and_close -do_faultsim_test 1 -start 1 -faults oom-* -prep { +do_faultsim_test 1 -start 1 -faults oom-t* -prep { faultsim_restore_and_reopen } -body { execsql { @@ -162,4 +162,65 @@ do_faultsim_test 8 -faults oom-t* -prep { faultsim_test_result {0 {1 2 5 6 9 10}} } +#------------------------------------------------------------------------- +# The following test causes a cursor in REQURESEEK state to be passed +# to sqlite3BtreeDelete(). An error is simulated within the seek operation +# to restore the cursors position. +# +reset_db +set big [string repeat x 900] +do_execsql_test 9.0 { + PRAGMA page_size = 512; + PRAGMA cache_size = 2; + CREATE TABLE t(x INTEGER PRIMARY KEY, y TEXT); + WITH s(i) AS ( + VALUES(1) UNION ALL SELECT i+1 FROM s WHERE i<1900 + ) + INSERT INTO t(y) SELECT $big FROM s; +} +db close + +testvfs tvfs -default 1 +tvfs script vfs_callback +tvfs filter xRead + +sqlite3 db test.db +proc vfs_callback {method file args} { + if {$file=="" && [info exists ::tmp_read_fail]} { + incr ::tmp_read_fail -1 + if {$::tmp_read_fail<=0} { + return "SQLITE_IOERR" + } + } + return "SQLITE_OK" +} + +set FAULTSIM(tmpread) [list \ + -injectstart tmpread_injectstart \ + -injectstop tmpread_injectstop \ + -injecterrlist {{1 {disk I/O error}}} \ +] +proc tmpread_injectstart {iFail} { + set ::tmp_read_fail $iFail +} +proc tmpread_injectstop {} { + set ret [expr $::tmp_read_fail<=0] + unset -nocomplain ::tmp_read_fail + return $ret +} + +do_faultsim_test 9 -end 25 -faults tmpread -body { + execsql { + SELECT sum(y) OVER win FROM t + WINDOW win AS ( + ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND 1800 FOLLOWING + ) + } +} -test { + faultsim_test_result {0 {}} +} + +catch {db close} +tvfs delete + finish_test diff --git a/test/without_rowid1.test b/test/without_rowid1.test index d794420ef2..c8f018737b 100644 --- a/test/without_rowid1.test +++ b/test/without_rowid1.test @@ -355,5 +355,41 @@ do_execsql_test 10.1 { DELETE FROM t2 WHERE b=1 } +#------------------------------------------------------------------------- +# UNIQUE constraint violation in an UPDATE with a multi-column PK. +# +reset_db +do_execsql_test 10.0 { + CREATE TABLE t1(a, b, c UNIQUE, PRIMARY KEY(a, b)) WITHOUT ROWID; + INSERT INTO t1 VALUES('a', 'a', 1); + INSERT INTO t1 VALUES('a', 'b', 2); + INSERT INTO t1 VALUES('b', 'a', 3); + INSERT INTO t1 VALUES('b', 'b', 4); +} + +do_catchsql_test 10.1 { + UPDATE t1 SET c=1 WHERE (a, b) = ('a', 'a'); +} {0 {}} +do_catchsql_test 10.2 { + UPDATE t1 SET c=1 WHERE (a, b) = ('a', 'b'); +} {1 {UNIQUE constraint failed: t1.c}} +do_catchsql_test 10.3 { + UPDATE t1 SET c=1 WHERE (a, b) = ('b', 'a'); +} {1 {UNIQUE constraint failed: t1.c}} +do_catchsql_test 10.4 { + UPDATE t1 SET c=1 WHERE (a, b) = ('b', 'b'); +} {1 {UNIQUE constraint failed: t1.c}} +do_catchsql_test 10.5 { + UPDATE t1 SET c=1 WHERE (a, b) = ('c', 'c'); +} {0 {}} + +do_execsql_test 10.6 { + CREATE TRIGGER t1_tr BEFORE UPDATE ON t1 BEGIN + DELETE FROM t1 WHERE a = new.a; + END; + UPDATE t1 SET c = c+1 WHERE a = 'a'; + SELECT * FROM t1; +} {b a 3 b b 4} + finish_test diff --git a/tool/addopcodes.tcl b/tool/addopcodes.tcl deleted file mode 100644 index 070779029b..0000000000 --- a/tool/addopcodes.tcl +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/tclsh -# -# This script appends additional token codes to the end of the -# parse.h file that lemon generates. These extra token codes are -# not used by the parser. But they are used by the tokenizer and/or -# the code generator. -# -# -set in [open [lindex $argv 0] rb] -set max 0 -while {![eof $in]} { - set line [gets $in] - if {[regexp {^#define TK_} $line]} { - puts $line - set x [lindex $line 2] - if {$x>$max} {set max $x} - } -} -close $in - -# The following are the extra token codes to be added. SPACE and -# ILLEGAL *must* be the last two token codes and they must be in that order. -# -set extras { - TRUEFALSE - ISNOT - FUNCTION - COLUMN - AGG_FUNCTION - AGG_COLUMN - UMINUS - UPLUS - TRUTH - REGISTER - VECTOR - SELECT_COLUMN - IF_NULL_ROW - ASTERISK - SPAN - END_OF_FILE - UNCLOSED_STRING - SPACE - ILLEGAL -} -if {[lrange $extras end-1 end]!="SPACE ILLEGAL"} { - error "SPACE and ILLEGAL must be the last two token codes and they\ - must be in that order" -} -foreach x $extras { - incr max - puts [format "#define TK_%-29s %4d" $x $max] -} - -# Some additional #defines related to token codes. -# -puts "\n/* The token codes above must all fit in 8 bits */" -puts [format "#define %-20s %-6s" TKFLG_MASK 0xff] -puts "\n/* Flags that can be added to a token code when it is not" -puts "** being stored in a u8: */" -foreach {fg val comment} { - TKFLG_DONTFOLD 0x100 {/* Omit constant folding optimizations */} -} { - puts [format "#define %-20s %-6s %s" $fg $val $comment] -} diff --git a/tool/cg_anno.tcl b/tool/cg_anno.tcl index 43d2b74fcd..50a3ca8558 100755 --- a/tool/cg_anno.tcl +++ b/tool/cg_anno.tcl @@ -1,4 +1,6 @@ -#!/usr/bin/tclsh +#!/bin/sh +# \ +exec tclsh "$0" ${1+"$@"} # # A wrapper around cg_annotate that sets appropriate command-line options # and rearranges the output so that annotated files occur in a consistent diff --git a/tool/dbtotxt.c b/tool/dbtotxt.c index ddc9e34196..8b0600fa51 100644 --- a/tool/dbtotxt.c +++ b/tool/dbtotxt.c @@ -51,7 +51,7 @@ int main(int argc, char **argv){ unsigned char bShow[256]; /* Characters ok to display */ memset(bShow, '.', sizeof(bShow)); for(i=' '; i<='~'; i++){ - if( i!='{' && i!='}' && i!='"' && i!='\\' ) bShow[i] = i; + if( i!='{' && i!='}' && i!='"' && i!='\\' ) bShow[i] = (unsigned char)i; } for(i=1; isqlite3.h" + exit 1 +} +set in [open [lindex $argv 0] rb] +while {![eof $in]} { + set line [gets $in] + if {[string match {* Begin file sqlite3.h *} $line]} break +} +while {![eof $in]} { + set line [gets $in] + if {[string match {* End of sqlite3.h *} $line]} break + puts $line +} +close $in diff --git a/tool/mkkeywordhash.c b/tool/mkkeywordhash.c index 7ef4cbb6ae..ece8b63e19 100644 --- a/tool/mkkeywordhash.c +++ b/tool/mkkeywordhash.c @@ -205,6 +205,7 @@ static Keyword aKeywordTable[] = { { "ESCAPE", "TK_ESCAPE", ALWAYS }, { "EXCEPT", "TK_EXCEPT", COMPOUND }, { "EXCLUSIVE", "TK_EXCLUSIVE", ALWAYS }, + { "EXCLUDE", "TK_EXCLUDE", WINDOWFUNC }, { "EXISTS", "TK_EXISTS", ALWAYS }, { "EXPLAIN", "TK_EXPLAIN", EXPLAIN }, { "FAIL", "TK_FAIL", CONFLICT|TRIGGER }, @@ -216,6 +217,7 @@ static Keyword aKeywordTable[] = { { "FULL", "TK_JOIN_KW", ALWAYS }, { "GLOB", "TK_LIKE_KW", ALWAYS }, { "GROUP", "TK_GROUP", ALWAYS }, + { "GROUPS", "TK_GROUPS", WINDOWFUNC }, { "HAVING", "TK_HAVING", ALWAYS }, { "IF", "TK_IF", ALWAYS }, { "IGNORE", "TK_IGNORE", CONFLICT|TRIGGER }, @@ -238,7 +240,7 @@ static Keyword aKeywordTable[] = { { "LIMIT", "TK_LIMIT", ALWAYS }, { "MATCH", "TK_MATCH", ALWAYS }, { "NATURAL", "TK_JOIN_KW", ALWAYS }, - { "NO", "TK_NO", FKEY }, + { "NO", "TK_NO", FKEY|WINDOWFUNC }, { "NOT", "TK_NOT", ALWAYS }, { "NOTHING", "TK_NOTHING", UPSERT }, { "NOTNULL", "TK_NOTNULL", ALWAYS }, @@ -248,6 +250,7 @@ static Keyword aKeywordTable[] = { { "ON", "TK_ON", ALWAYS }, { "OR", "TK_OR", ALWAYS }, { "ORDER", "TK_ORDER", ALWAYS }, + { "OTHERS", "TK_OTHERS", WINDOWFUNC }, { "OUTER", "TK_JOIN_KW", ALWAYS }, { "OVER", "TK_OVER", WINDOWFUNC }, { "PARTITION", "TK_PARTITION", WINDOWFUNC }, @@ -277,6 +280,7 @@ static Keyword aKeywordTable[] = { { "TEMP", "TK_TEMP", ALWAYS }, { "TEMPORARY", "TK_TEMP", ALWAYS }, { "THEN", "TK_THEN", ALWAYS }, + { "TIES", "TK_TIES", WINDOWFUNC }, { "TO", "TK_TO", ALWAYS }, { "TRANSACTION", "TK_TRANSACTION", ALWAYS }, { "TRIGGER", "TK_TRIGGER", TRIGGER }, @@ -289,11 +293,11 @@ static Keyword aKeywordTable[] = { { "VALUES", "TK_VALUES", ALWAYS }, { "VIEW", "TK_VIEW", VIEW }, { "VIRTUAL", "TK_VIRTUAL", VTAB }, + { "WHEN", "TK_WHEN", ALWAYS }, + { "WHERE", "TK_WHERE", ALWAYS }, { "WINDOW", "TK_WINDOW", WINDOWFUNC }, { "WITH", "TK_WITH", CTE }, { "WITHOUT", "TK_WITHOUT", ALWAYS }, - { "WHEN", "TK_WHEN", ALWAYS }, - { "WHERE", "TK_WHERE", ALWAYS }, }; /* Number of keywords */ diff --git a/tool/omittest.tcl b/tool/omittest.tcl index c42519dd8c..fc51127a6c 100644 --- a/tool/omittest.tcl +++ b/tool/omittest.tcl @@ -192,21 +192,23 @@ proc main {argv} { SQLITE_OMIT_BETWEEN_OPTIMIZATION \ SQLITE_OMIT_BLOB_LITERAL \ SQLITE_OMIT_BTREECOUNT \ - SQLITE_OMIT_BUILTIN_TEST \ SQLITE_OMIT_CAST \ SQLITE_OMIT_CHECK \ SQLITE_OMIT_COMPILEOPTION_DIAGS \ SQLITE_OMIT_COMPLETE \ SQLITE_OMIT_COMPOUND_SELECT \ + SQLITE_OMIT_CONFLICT_CLAUSE \ SQLITE_OMIT_CTE \ SQLITE_OMIT_DATETIME_FUNCS \ SQLITE_OMIT_DECLTYPE \ SQLITE_OMIT_DEPRECATED \ + SQLITE_OMIT_DISKIO \ SQLITE_OMIT_EXPLAIN \ SQLITE_OMIT_FLAG_PRAGMAS \ SQLITE_OMIT_FLOATING_POINT \ SQLITE_OMIT_FOREIGN_KEY \ SQLITE_OMIT_GET_TABLE \ + SQLITE_OMIT_HEX_INTEGER \ SQLITE_OMIT_INCRBLOB \ SQLITE_OMIT_INTEGRITY_CHECK \ SQLITE_OMIT_LIKE_OPTIMIZATION \ @@ -214,27 +216,34 @@ proc main {argv} { SQLITE_OMIT_LOCALTIME \ SQLITE_OMIT_LOOKASIDE \ SQLITE_OMIT_MEMORYDB \ + SQLITE_OMIT_MEMORY_ALLOCATION \ SQLITE_OMIT_OR_OPTIMIZATION \ SQLITE_OMIT_PAGER_PRAGMAS \ + SQLITE_OMIT_PARSER_TRACE \ + SQLITE_OMIT_POPEN \ SQLITE_OMIT_PRAGMA \ SQLITE_OMIT_PROGRESS_CALLBACK \ SQLITE_OMIT_QUICKBALANCE \ + SQLITE_OMIT_RANDOMNESS \ SQLITE_OMIT_REINDEX \ SQLITE_OMIT_SCHEMA_PRAGMAS \ SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS \ SQLITE_OMIT_SHARED_CACHE \ + SQLITE_OMIT_SHUTDOWN_DIRECTORIES \ SQLITE_OMIT_SUBQUERY \ SQLITE_OMIT_TCL_VARIABLE \ SQLITE_OMIT_TEMPDB \ + SQLITE_OMIT_TEST_CONTROL \ SQLITE_OMIT_TRACE \ SQLITE_OMIT_TRIGGER \ SQLITE_OMIT_TRUNCATE_OPTIMIZATION \ - SQLITE_OMIT_UNIQUE_ENFORCEMENT \ + SQLITE_OMIT_UPSERT \ SQLITE_OMIT_UTF16 \ SQLITE_OMIT_VACUUM \ SQLITE_OMIT_VIEW \ SQLITE_OMIT_VIRTUALTABLE \ SQLITE_OMIT_WAL \ + SQLITE_OMIT_WINDOWFUNC \ SQLITE_OMIT_WSD \ SQLITE_OMIT_XFER_OPT \ ] diff --git a/tool/showdb.c b/tool/showdb.c index ba7a362258..cb6ddabca6 100644 --- a/tool/showdb.c +++ b/tool/showdb.c @@ -828,7 +828,7 @@ static void page_usage_cell( while( ovfl && (cnt++)